File "C:\Users\twy\Desktop\experiment3\lab3_2.py", line 51, in
myQueue.dequeue()
File "C:\Users\twy\Desktop\experiment3\lab3_2.py", line 31, in dequeue
assert not self.is_empty()
AssertionError
class Node(object):
def __init__(self, value=None):
self.data = value
self.next = None
class LQueue(object):
def __init__(self):
# to note that no header node is defined
self.front = None
self.rear = None
self.size=0
def enqueue(self, value):
#
newnode = Node(value)
if self.is_empty():
# add an element for empty queue
self.rear = self.front = newnode
else:
self.rear.next=newnode
self.rear=newnode
def dequeue(self):
#
assert not self.is_empty()
result=self.front.data
self.front=self.front.next
return result
def is_empty(self):
return self.size==0
def gethead(self):
# read the front element of queue
if not self.is_empty():
self.front=self.front.data
if __name__ == "__main__":
myQueue = LQueue()
myQueue.enqueue(6)
myQueue.enqueue(8)
print("The top element of current queue is: ", myQueue.gethead())
myQueue.dequeue()
print("The top element of current queue is: ", myQueue.gethead())
class Node(object):
def __init__(self, value=None):
self.data = value
self.next = None
class LQueue(object):
def __init__(self):
# to note that no header node is defined
self.front = None
self.rear = None
self.size = 0
def enqueue(self, value):
#
newnode = Node(value)
if self.is_empty():
# add an element for empty queue
self.rear = self.front = newnode
else:
self.rear.next = newnode
self.rear = newnode
self.size = self.size + 1
def dequeue(self):
#
assert not self.is_empty()
result = self.front.data
self.front = self.front.next
self.size = self.size - 1
return result
def is_empty(self):
return self.size == 0
def gethead(self):
# read the front element of queue
if not self.is_empty():
return self.front.data
if __name__ == "__main__":
myQueue = LQueue()
myQueue.enqueue(6)
myQueue.enqueue(8)
print("The top element of current queue is: ", myQueue.gethead())
myQueue.dequeue()
print("The top element of current queue is: ", myQueue.gethead())
def enqueue(self, value):
这个函数里最后加上self.size += 1
,每添加一个元素就更新一次size的值
1.enqueue方法添加元素后,元素个数+1
self.size+=1
2. dequeue方法删除元素后,元素个数-1
self.size-=1
3. gethead获取元素方法,没有返回值,所以是none,加上你要返回的值, return