首页 > 其他 > 详细

栈,队列,双端队列 功能实现

时间:2020-05-24 12:43:51      阅读:49      评论:0      收藏:0      [点我收藏+]

 

# 栈的功能实现

Stack() 创建一个新的空栈


push(item) 添加一个新的元素item到栈顶


pop() 弹出栈顶元素


peek() 返回栈顶元素


is_empty() 判断栈是否为空


size() 返回栈的元素个数



class
Stack: # 初始化空栈 def __init__(self): self.__list = [] def push(self, item): self.__list.append(item) def pop(self): if self.__list: return self.__list.pop() else: return None def peek(self): if self.__list: return self.__list[-1] else: return None def is_empty(self): return self.__list is None def size(self): return len(self.__list) if __name__ == __main__: s = Stack() s.push(1) s.push(2) s.push(3) print(s.pop()) print(s.pop()) print(s.pop())
# 队列的功能实现

l Queue() 创建一个新的空队列


l enqueue(item) 往队列中添加一个item元素


l dequeue() 从队列头部删除一个元素


l is_empty() 判断一个队列是否为空


l size() 返回队列的大小

 


# 定义队列
class Queue: # 初始化 def __init__(self): self.__list = [] def enqueue(self,item): self.__list.append(item) def dequeue(self): return self.__list.pop(0) def is_empty(self): return self.__list is None def size(self): return len(self.__list) if __name__ == __main__: q = Queue() q.enqueue(1) q.enqueue(2) q.enqueue(3) print(q.dequeue()) print(q.dequeue()) print(q.dequeue())

 

 

3.双端队列的功能实现

?Deque() 创建一个空的双端队列
?add_front(item) 从队头加入一个item元素
?add_rear(item) 从队尾加入一个item元素
?pop_front() 从队头取一个item元素
?pop_rear() 从队尾取一个item元素
?is_empty() 判断双端队列是否为空
?size() 返回队列的大小

class Deque:
    def __init__(self):
        self.__list = []
    def add_front(self,item):
        self.__list.insert(0,item)
    def add_rear(self,item):
        self.__list.append(item)
    def pop_front(self):
        return self.__list.pop(0)
    def pop_rear(self):
        return self.__list.pop()

    def is_empty(self):
        return self.__list is None

    def size(self):
        return len(self.__list)

if __name__ == __main__:
    d = Deque()
    d.add_front(1)
    d.add_front(2)
    d.add_rear(3)
    d.add_rear(4)
    print(d.size())
    print(d.pop_front())
    print(d.pop_front())
    print(d.pop_rear())
    print(d.pop_rear())

 

栈,队列,双端队列 功能实现

原文:https://www.cnblogs.com/hude/p/12950369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!