用Python队列存储描述栈

本文介绍如何使用Python列表实现栈数据结构,包括入栈、出栈、获取栈顶元素、获取栈长度及判断是否为空栈等操作。

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

Python真是强大!C语言描述略微麻烦的栈在Python中用列表实现就变得很简单,以下是用列表描述栈,包括入栈、出栈、取栈顶元素、获取栈的长度、输出栈等操作:


class Stack(object):#定义栈类
    def __init__(self):
        self.__list = []    #初始化操作,定义空列表作栈

    #入栈操作
    def push(self,data):
        self.__list.append(data)    #把列表尾部当作栈顶,即尾插

    # 把列表头部当作栈顶,头插,每次都把数据放在列表首部
    # def push(self,data):
    #     self.__list.append(0,data)

    #出栈操作
    def pop(self):
        self.__list.pop()   #从列表的尾部删除元素即出栈

    # 与之前被注释的入栈操作相对应,当栈顶是列表头部时每次出栈即删除首个元素
    # def pop(self):
    #     self.__list.pop(0)

    #返回栈顶元素
    def Get_top(self):
        #如果列表不为空继续操作,否则返回None
        if self.__list:
            return self.__list[-1]
        else:
            return None

    #判断是否是空栈
    def Empty(self):
        if not self.__list:
            return None

    #获取栈的长度
    def length(self):
        return len(self.__list)

    #输出整个栈
    def Print(self):
        for x in self.__list:
            print(x)

if __name__ == '__main__':
    s = Stack()
    s.push(3)
    s.push(4)
    s.push(5)
    print("\n该栈是:")
    s.Print()
    print("\n共"+str(s.length())+"个元素\n")	#注意必须是str类型
    print("栈顶元素是:"+str(s.Get_top())+'\n')
    print("是否空栈:"+str(s.Empty())+'\n')
    s.pop()
    s.pop()
    s.pop()
    print("该栈是:")
    s.Print()
    print("\n共" + str(s.length()) + "个元素\n")
    print("栈顶元素是:" + str(s.Get_top()) + '\n')
    print("是否空栈:" + str(s.Empty()) + '\n')

以下是运行结果:

该栈是:
3
4
5

共3个元素

栈顶元素是:5

是否空栈:None

该栈是:

共0个元素

栈顶元素是:None

是否空栈:None
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值