用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque。
以下内容为栈:
#! /usr/bin/env python # DataStructure Stack class Stack: def __init__(self, data=None): if data is not None: self.stk = [data] self.top = 0 else: self.stk = [] self.top = -1 def __str__(self): return " ".join([str(x) for x in self.stk]) def push(self, data): self.stk.append(data) self.top += 1 def pop(self): if self.top == -1: print "Stack is empty" return return self.stk.pop() def isEmpty(self): if self.top == -1: return 1 else : return 0 if __name__ == "__main__": stack = Stack() for i in range(10): stack.push(i) print "push:",stack print "pop: ", for i in range(3): print stack.pop(), print "" print "left:",stack
以下内容为队列:
#! /usr/bin/env python # DataStructure Queue class Queue: def __init__(self, data=None): if data is not None: self.que = [data] else: self.que = [] def __str__(self): return " ".join([str(x) for x in self.que]) def isEmpty(self): if len(self.que): return 0 else: return 1 def enQueue(self, data): self.que.append(data) def deQueue(self): return self.que.pop(0) if __name__ == "__main__": queue = Queue() for i in range(10, 0, -1): queue.enQueue(i) print "enQueue:",queue print "deQueue:", for i in range(3): print queue.deQueue(), print "" print "left: ",queue