Python数据结构实战—栈(Stack)

1.栈的性质(后进先出)

s = []      #定义一个空数组装元素
s.append('https://www.cnn.com/')      #尾部添加
s.append('https://www.cnn.com/world')
s.append('https://www.cnn.com/india')
s.append('https://www.cnn.com/china')
s

在这里插入图片描述

s.pop()    #删除最后一个元素
s.pop()
s
s[-1]      #显示最后一个元素

在这里插入图片描述

2.使用deque作为栈

stack.append('https://www.cnn.com/')
stack.append('https://www.cnn.com/world')
stack.append('https://www.cnn.com/india')
stack.append('https://www.cnn.com/china')
stack

在这里插入图片描述

stack.pop()
stack.pop()
stack

在这里插入图片描述

stack.pop()
stack.pop()
stack.pop()

在这里插入图片描述

3.使用双端队列实现Stack类

class Stack:
    def __init__(self):
        self.container = deque()
        
    def push(self, val):
        self.container.append(val)
    
    def pop(self):
        return self.container.pop()
    
    def peek(self):
        return self.container[-1]
    
    def is_empty(self):
        return len(self.container) == 0
    
    def size(self):
        return len(self.container)
s = Stack()
s.push(5)
s.is_empty()
#输出False
s.pop()
s.is_empty()
#输出True

s.push(9)
s.push(34)
s.push(78)
s.push(12)
s.peek()
#输出12
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值