Python——栈的实现

本文介绍两种栈操作实现方式:一种是使用列表实现基本的栈操作,包括入栈、出栈、查看栈顶元素、获取栈长度及判断栈是否为空;另一种是通过面向对象的方式定义栈类,并实现相同的功能。

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

题目要求:

栈的工作原理:
1.入栈
2.出栈
3.栈顶元素
4.栈长度
5.栈是否为空

方法一

列表法:

stack = []
info = '''
    栈操作:
    1.入栈
    2.出栈
    3.栈顶元素
    4.栈长度
    5.栈是否为空
'''
while True:
    print(info)
    select = input('请输入你的选择: ')
    if select == '1':
        item = input('请输入入栈元素: ')
        stack.append(item)
        print('%s元素入栈成功' %item)
    elif select == '2':
        if not stack:
            print('栈为空,不能出栈')
        else:
            item = stack.pop()
            print('%s元素出栈成功' %item)
    elif select == '3':
        if len(stack) == 0:
            print('栈为空')
        else:
            print('栈顶元素为%s' %stack[-1])
    elif select == '4':
        print('栈的长度为%s' %len(stack))
    elif select == '5':
        if len(stack) == 0:
            print('栈为空')
        else:
            print('栈不为空')
    elif select == 'exit':
        print('退出...')
        exit()
    else:
        print('请输入正确的选择...')

执行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法二

面向对象法:

class Stack():
    def __init__(self):
        self.stack = []
    def push(self,value):
        self.stack.append(value)
        return True
    def pop(self):
        if self.stack:    #判断栈是否为空
            item = self.stack.pop()
            return item
        else:   #栈为空
            return False
    def top(self):
        if self.stack:   #栈不为空时
            return self.stack[-1]
        else:
            return False
    def length(self):
        return len(self.stack)
    def view(self):
        return ','.join(self.stack)
s = Stack()
s.push('1')
s.push('2')
s.push('3')
item = s.pop()
print(s.view())

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值