栈和队列的数据结构和操作,比较简单,这里做一个简单的总结和实现。
#栈
满足后进先出(last in first out,LIFO),在Python中可以用数组在模拟栈的操作。
##实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Stack(object): def __init__(self): self.stack=[]
def isEmpty(self): return self.stack==[]
def push(self,item): self.stack.append(item)
def pop(self): if self.isEmpty(): raise IndexError,'pop from empty stack' return self.stack.pop()
def peek(self): return self.stack[-1]
def size(self): return len(self.stack)
|
#队列
满足先进先出(first in first out,FIFO)队列的基本操作是Enqueue(入队),在表的末端(rear)插入一个元素,还有出列(Dequeue),删除表开头的元素。其实现也比较容易,同样可以用数组模拟。
##实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Queue(object): def __init__(self): self.queue=[]
def isEmpty(self): return self.queue==[]
def enqueue(self,x): self.queue.append(x)
def dequeue(self): if self.queue: a=self.queue[0] self.queue.remove(a) return a else: raise IndexError,'queue is empty'
def size(self): return len(self.queue)
|
v1.5.2