队列

先进先出。

列表头是队尾,列表尾是队头。

 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()

 

posted @ 2019-04-21 14:07  Austin_anheqiao  阅读(212)  评论(0编辑  收藏  举报