球球了 self.stack = [] 这里用来干嘛的
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
红字部分用来干嘛的
循环输入的列表,逐个加入到栈中。 本帖最后由 nahongyan1997 于 2021-8-3 16:18 编辑
看代码: (满意设置个最佳呦,阿里嘎都)
# 这个类其实就是为了模拟栈的运行方式而编写的,并没有什么实际性的作用
class Stack:
def __init__(self, start=[]):
# 这个属性就是栈本身,虽然在python中他并没有内存空间的限制
self.stack = []
# 模拟栈的运行方式将实例化类时传入的参数一个一个的压入(push)栈(self.stack)中,在实际使用中与 self.stack = start 作用是相同的
for x in start:
self.push(x)
def isEmpty(self):
return not self.stack
def push(self, obj):
self.stack.append(obj)
# 弹栈操作(pop)
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
本帖最后由 bravsheng 于 2021-8-4 14:31 编辑
nahongyan1997 发表于 2021-8-3 16:16
看代码: (满意设置个最佳呦,阿里嘎都)
噢,明白了! 原来是为了模拟栈的运行方式才这么写的!
你的回答解决我的疑惑!我也刚发帖询问,真巧又看到这篇贴子。
(我一开始想到是 self.stack = start,但看了答案循环压入的操作有些不理解了。) bravsheng 发表于 2021-8-4 14:29
噢,明白了! 原来是为了模拟栈的运行方式才这么写的!
你的回答解决我的疑惑!我也刚发帖询问, ...
满意给个最佳欧
页:
[1]