关于python的简单栈编程

  • 栈(stack),它是一种运算受限的线性表,后进先出(LIFO)

    • LIFO(last in first out)表示就是后进入的元素, 第一个弹出栈空间. 类似于自动餐托盘, 最后放上的托盘, 往往先把拿出去使用.

    • 其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。

    • 向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;

    • 从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

class Stack:
    def __init__(self):
        self.items = []
        self.size = 0

    def push(self, item):
        # 在开头插入元素
        self.items.insert(0, item)
        self.size += 1
        return item

    def empty(self):
        # 判断栈是否为空
        return self.size == 0

    def pop(self):
        # 弹出栈顶元素
        if self.empty():
            return None
        else:
            self.size -= 1
            return self.items.pop(0)

    def peek(self):
        # 显示栈顶元素
        if self.empty():
            return None
        else:
            return self.items[0]

    def clear(self):
        self.items.clear()
        self.size = 0
        return "clear成功"

    def si_ze(self):
        return self.size


s1 = Stack()
# 数据输入
s1.push(1)
s1.push(22)
s1.push(333)
s1.push(4444)
s1.push(55555)
# 查看栈列表
print(s1.items)
# 弹出栈顶元素
print(s1.pop())
# 查看栈顶元素
print(s1.peek())
# 继续弹出栈顶元素检查peek是否正确
print(s1.pop())
# 返回元素个数
print(s1.si_ze())
# 清空栈
print(s1.clear())
print(s1.si_ze())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值