模拟栈的工作原理:
- 入栈
- 出栈
- 查看栈顶元素
- 栈的长度
- 栈是否为空
注意:空栈不能出栈,且此时不栈顶元素
代码:
caidan='''
1.入栈
2.出栈
3.查看栈顶元素
4.栈的长度
5.栈是否为空
6.退出
'''
x=[]
print(caidan)
while True:
choice=int(input("操作数字为:"))
if choice==1:
print("入栈,请输入元素:")
a=input()
x.append(a)
print("此时栈里有:",x)
elif choice==2:
if x==[]:
print("栈为空,无元素出栈")
else:
print("出栈元素为:",x.pop())
elif choice==3:
if x==[]:
print("栈为空,栈内无元素!")
else:
print("栈顶元素为:",x[-1])
elif choice==4:
print("栈的长度为:",len(x))
elif choice==5:
if x==[]:
print("栈为空!")
else:
print("栈非空!")
elif choice==6:
print("退出")
exit()
else :
if choice<1 or choice>6:
print("请输入正确的操作数:")
continue
输出:
1.入栈
2.出栈
3.查看栈顶元素
4.栈的长度
5.栈是否为空
6.退出
操作数字为:1
入栈,请输入元素:
1
此时栈里有: ['1']
操作数字为:1
入栈,请输入元素:
2
此时栈里有: ['1', '2']
操作数字为:1
入栈,请输入元素:
5
此时栈里有: ['1', '2', '5']
操作数字为:1
入栈,请输入元素:
7
此时栈里有: ['1', '2', '5', '7']
操作数字为:1
入栈,请输入元素:
9
此时栈里有: ['1', '2', '5', '7', '9']
操作数字为:2
出栈元素为: 9
操作数字为:3
栈顶元素为: 7
操作数字为:4
栈的长度为: 4
操作数字为:5
栈非空!
操作数字为:6
退出
***Repl Closed***
- 入栈:这里用append()函数之一将输入的元素放入列表,模拟栈
- 栈的特点是先入后出,所以出栈是用pop()函数,不指定下标默认删除最后一个元素并返回这个值
- 查看栈顶元素就是运用列表x[-1],-1的下标即是代表最后一个元素
- 栈的长度就运用到len()函数