|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- class Stack:
- def __init__(self, start=[]):
- self.stack = []
- for x in start:
- self.push(x)
- def isEmpty(self):
- return not self.stack
-
- def push(self, obj):
- self.stack.append(obj)
-
- def pop(self):
- if not self.stack:
- print('警告:栈为空!')
- else:
- return self.stack.pop()
-
- def top(self):
- if not self.stack:
- print('警告:栈为空!')
- else:
- return self.stack[-1]
-
- def bottom(self):
- if not self.stack:
- print('警告:栈为空!')
- else:
- return self.stack[0]
复制代码
这个代码主要是模拟栈的压入和弹出的,要是我想压入fish这个单词,是不是应该在实例化时给start赋值为‘hsif’,之后压入栈中,之后按顺序弹出元素分别是f,i,s,h啊?
本帖最后由 Twilight6 于 2020-6-26 15:30 编辑
楼上说的对,我觉的你应该是想这样的:
记着栈是 先进后出 ,后进先出的原则就好了
你如果想分别压入 f i s h ,那么按顺序来看 是 f -> i -> s -> h f 是最先放入栈中的
如果你取出,则顺序是 h -> s -> i -> f 这样的
所以你分别压入 h s i f 才是分别弹出 f i s h
如果你压入 fish 那么 弹出也为 fish 了
|
|