【发布时间】:2018-07-17 10:02:08
【问题描述】:
我有一个 Stack ADT,当调用它来创建 (stack.create()) 时,它会返回一个表单元组 ("This Stack contains", list())。 ADT 中的其他内容包括 push/pop/size/is_empty
现在我有一个文件,file.txt,就是这样
1 2 3 4
5 6 7 8
我希望它像
一样输出8 7 6 5
4 3 2 1
到目前为止,我的代码是这样的:
import StackADT as stack
file = open("file.txt", "r")
stack_main = stack.create()
stack_rev = stack.create()
for line in file:
line = line.split()
stack.push(stack_main, line)
print(stack_main)
print(stack_main) 输出
("This Stack Contains", [['1','2','3','4'],['5','6','7','8']])
然后我将['5','6','7','8'] 列表推入我的第二个堆栈,如下所示:
stack.push(stack_rev, stack.pop(stack_main))
print(stack_rev)
给出:
("This Stack Contains", [['5', '6', '7', '8']])
现在我的问题是如何从 stack_rev 中弹出项目5,6,7,8?
我尝试使用 for 循环,但它给了我一个错误。我还尝试添加这样的 if 语句:
for i in stack_rev:
if i == 'This Stack Contains':
pass
else:
for x in i:
print(stack.pop(stack_rev))
但它只返回一个空堆栈,如下所示:("This Stack Contains", []) 任何帮助,将不胜感激。谢谢。
【问题讨论】:
标签: python data-structures stack