用python实现栈

本文介绍了一种使用Python实现栈数据结构的方法。通过定义一个名为Stack的类,并实现了基本的栈操作,如入栈(push)、出栈(pop)、查看栈顶元素(peek)等。此外还介绍了如何处理栈满的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感觉用python写栈特别方便,因为不像c/c++那样要自己写append之类的函数,列表本身已经自带了很多函数,纯当写类的练手吧。code:

class Stack:
    def __init__(self,limit=10):#初始化,栈的最大范围默认是10
        #变量名字前有两条下划线,说明是私有变量
        self.__stack=[]
        self.__limit=limit
    def __str__(self):#使用print的时候直接调用
        return ''.join([str(i) for i in self.__stack])
    def push(self,data):#入栈
        if len(self.__stack)>=self.__limit:
            self.double_limit()#如果栈的范围不够就扩大一倍
        self.__stack.append(data)
    def pop(self):#出栈
        if len(self.__stack)<=0:
            return -1
        else:
            self.__stack.pop()#调用python列表自带的pop
    def peek(self):#返回栈顶的元素
        if len(self.__stack)<=0:
            return -1
        else :
            return self.__stack[-1]
    def is_empty(self):#判断是否为空
        return self.size()==0
    def size(self):
        return len(self.__stack)
    def double_limit(self):
        self.__limit*=2
#示例代码
mystack=Stack()
for i in range(10):
    mystack.push(i)
print(mystack)
mystack.pop()
print(mystack)
print(mystack.peek())
输出:
0123456789
012345678
8
倒是私有变量这个今天才知道。以上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值