栈 队列 双端队列的实现
程序员文章站
2024-03-18 12:00:10
...
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()
上一篇: 操作系统页面置换算法之最近最久未使用(LRU)页面置换算法
下一篇: 链队列的实现