栈队列 双端队列的实现

it2022-05-05  125

1.栈

class Stack(object): """栈""" def __init__(self): self.__list = [] def push(self,item): """添加新元素item到栈顶""" self.__list.append(item) def pop(self): """弹出栈顶元素""" self.__list.pop() def peek(self): """返回栈顶元素""" if self.__list: return self.__list[-1] else: return None def is_empty(self): """判断栈是否为空""" return len(self.__list) if __name__ == "__main__": s = Stack()

2.队列

class Queue(object): """队列""" def __init__(self): self.__list = [] def enqueue(self,item): """往队列里添加一个item元素""" self.__list.append(item) def dequeue(self): """从队列头部删除元素""" self.__list.pop(0) def is_empty(self): """判断一个队列是否为空""" return self.__list = [] def size(self): """返回队列大小""" return len(self.__list) if __name__ == "__main__": q = Queue()

3.双端队列

class Queue(object): """队列""" def __init__(self): self.__list = [] def add_front(self,item): """往队列头添加一个item元素""" self.__list.insert(0,item) def add_rear(self,item): """队尾添加元素""" self.__list.append(item) def pop_front(self): """队头删除元素""" self.__list.pop(0) def pop_rear(self): """队尾删除元素""" self.__list.pop() def is_empty(self): """判断一个队列是否为空""" return self.__list = [] def size(self): """返回队列大小""" return len(self.__list) if __name__ == "__main__": q = Queue()

 


最新回复(0)