队列--对头删除,对尾插入
http://blog.csdn.net/u010786109/article/details/40649827
# coding=utf-8 class Stack(): def __init__(self,size): self.size=size self.stack=[] self.top=-1 def push(self,x): if self.isfull(): raise Exception('stack is full') else: self.stack.append(x) self.top=self.top+1 def pop(self): if self.isempty(): raise Exception('stack is empty') else: self.top=self.top-1 self.stack.pop() def isfull(self): return self.top+1==self.size def isempty(self): return self.top==-1 def showstack(self): print(self.stack) if __name__ == '__main__': s=Stack(10) for i in range(5): s.push(i) s.showstack() for i in range(3): s.pop() s.showstack() ####### coding=utf-8 class Queue(): def __init__(self,size): self.size=size self.front=-1 self.rear=-1 self.queue=[] def enqueue(self,x): if self.isfull(): raise Exception('queue is full') else: self.queue.append(x) self.rear=self.rear+1 def dequeue(self): if self.isempty(): raise Exception('queue is empty') else: self.queue.pop(0)#每次弹出第一个 self.front=self.front+1 def isfull(self): return self.rear-self.front+1==self.size def isempty(self): return self.front==self.rear def showQueue(self): print(self.queue) if __name__ == '__main__': q=Queue(10) for i in range(5): q.enqueue(i) q.showQueue() for i in range(3): q.dequeue() q.showQueue()