以下都是用list来实现的
实现Stack
# Implement a Stack in Python class Stack(object):def __init__(self):self.items = []def is_empty(self):return self.items == []def push(self, item):self.items.append(item)def pop(self):return self.items.pop()def peek(self):return self.items[len(self.items) - 1]def size(self):return len(self.items)s = Stack()print(s.is_empty())s.push(4) s.push('dog') print(s.peek())s.push(True)print(s.size()) print(s.is_empty())s.push(8.4)print(s.pop()) print(s.pop()) print(s.size())
实现Queue
# Implement a Queue in Python # 工程中一般不用Queue, 用双端队列Deque(Double-end Queue),因为Deque已经有Queue的功能class Queue(object):def __init__(self):self.items = []def is_empty(self):return self.items == []def enqueue(self, item):self.items.insert(0, item)def dequeue(self):return self.items.pop()def size(self):return len(self.items)q = Queue()print(q.is_empty())q.enqueue(4) q.enqueue('dog') q.enqueue(True) print(q.size()) print(q.is_empty())print(q.dequeue())print(q.size())
实现双端对列
# Implement a deque in Pythonclass Deque(object):def __init__(self):self.items = []def is_empty(self):return self.items == []def add_front(self, item):self.items.append(item)def add_rear(self, item):self.items.insert(0, item)def remove_front(self):return self.items.pop()def remove_rear(self):return self.items.pop(0)def size(self):return len(self.items)d = Deque() print(d.is_empty()) d.add_rear(4) d.add_rear('dog') d.add_front('cat') print(d.size())print(d.is_empty()) d.add_rear(8.4)print(d.remove_rear()) print(d.remove_front())