题目要求:
栈的工作原理:
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())