队列
先进先出。
列表头是队尾,列表尾是队头。
1 class queue(): 2 def __init__(self,myqueue=[]): 3 self.queue=myqueue 4 def is_empty(self): 5 return len(self.queue)==0 6 def enqueue(self,item): 7 return self.queue.insert(0,item) 8 def dequeue(self): 9 if self.queue: 10 return self.queue.pop() 11 else: 12 print('the queue is empty!!!!!') 13 def size(self): 14 return len(self.queue) 15 def print1(self): 16 print(self.queue) 17 myQueue = queue([1,2,3]) 18 print('原队列:',end='') 19 myQueue.print1() 20 print('入队') 21 for i in range(4): 22 myQueue.enqueue(i) 23 myQueue.print1() 24 print('出队') 25 for j in range(7): 26 myQueue.dequeue() 27 myQueue.print1()
双端队列Deque
可以在前面或后面添加新项。同样,可以从任一端移除现有项。
拥有栈和队列的许多特性。
1 class Deque(): 2 def __init__(self,mydequeue=[]): 3 self.myDeque = mydequeue 4 def is_empty(self): 5 return len(self.myDeque) == 0 6 def addFront(self,item): 7 return self.myDeque.insert(0,item) 8 def addLast(self,item): 9 return self.myDeque.append(item) 10 def removeFront(self): 11 return self.myDeque.pop(0) 12 def removeLast(self): 13 return self.myDeque.pop() 14 def size(self): 15 return len(self.myDeque) 16 def print1(self): 17 print(self.myDeque) 18 myDequeue = Deque() 19 print('原双端队列:',end='') 20 myDequeue.print1() 21 print('addfront:',end='') 22 myDequeue.addFront('la') 23 myDequeue.print1()