在我的作业中,我要做一个deque类,让人们从前面和后面插入,也可以从前面和后面删除,这是deque类中4个独立的函数。在
如果我使用insert_front,那么我可以使用remove_front移除队列中的所有内容,但是如果我使用insert_front并尝试使用remove_rear,那么我的程序在执行remove_rear一次之后中断,它将删除后面的部分,但是如果我尝试删除下一个后端,程序会因为不知道下一个后端节点是什么而中断,我已经知道了不知道如何能够跟踪前后,所以我可以互换使用这些功能。反之亦然,插入“后”和“拆下”前。在
我的Deque类代码如下:
def insert_front( self, value ):
if self._rear==None and len(self)==1:
node = _DequeNode(value, self._front,self._rear)
self._front = node
self._rear=node
else:
node = _DequeNode(value, self._front,self._rear)
self._front = node
self._size += 1
return
def insert_rear( self, value ):
node = _DequeNode(value, self._front,self._rear)
self._rear = node
if self._front==None and len(self)==2:
self._front=node
self._size += 1
return
def remove_front( self ):
if self.is_empty():
value = None
else:
current = self._front
value = current._value
self._front = current._next
self._size -= 1
return value
def remove_rear( self ):
if self.is_empty():
value = None
else:
current = self._rear
value = current._value
self._rear = current._prev
self._size -= 1
return value
这是我的演讲:
^{pr2}$我在修改代码的时候肯定做错了什么,因为这本来是一个链表,你只能从前面删除和插入,老师让我们把它做成一个前后都有的Deque,我根据我认为应该发生的事情来编辑代码。。在
有人能帮我吗?我一整天都在想办法解决这个问题! 提前谢谢!!在
这是我写得很快的一个工作版本。在
我还添加了一个}的一个好实践,除非您还修改了
__repr__
方法,这样您就可以看到发生了什么(这实际上不是{__init__
使其能够将输出作为参数。在您可能还想看看https://github.com/python-mirror/python/blob/master/Modules/_collectionsmodule.c-它包含python
deque
实现。在相关问题 更多 >
编程相关推荐