【发布时间】:2022-10-13 05:40:34
【问题描述】:
我正在尝试(我已经解决了它,只是不是“正确”的方式)来解决以下问题:
堆栈是一种列表类型,而不是访问 列表中的任何项目,您只能添加 或从堆栈顶部删除项目。
将新项目添加到堆栈中称为“推送” 项目到堆栈上。删除顶部的项目 堆栈被称为“弹出”堆栈中的项目。 当一个项目从堆栈中“弹出”时,它会被移除 完全从列表中。 编写一个名为 Stack 的类。堆栈应该有 以下方法:
一个在里面初始化空列表的方法 那是堆栈的内容。
采用一个参数的 stack_push() 方法(在 除了自我):推到顶部的项目 的堆栈。
返回当前顶部的 stack_pop() 方法 堆栈上的项目并将其从底层移除 列表。如果列表已经为空,则返回 没有任何。
例如,以下代码将打印 数字 3、2 和 1(按此顺序)。请注意,这 是它们被推动的相反顺序: pop 方法将始终返回 添加它们的相反顺序。
new_stack = Stack()
new_stack.stack_push(1)
new_stack.stack_push(2)
new_stack.stack_push(3)
print(new_stack.stack_pop())
print(new_stack.stack_pop())
print(new_stack.stack_pop())
在此处添加您的课程!
这是我想出的:
class Stack:
def __init__(self):
self.a_list =[]
def stack_push(self,num):
self.a_list.append(num)
def stack_pop(self):
return self.a_list.pop()
这可行,但我不允许在最后一行使用 .pop 方法。有什么想法吗?这是测试我的课程的代码:
以下代码行将测试您的课程。 如果它工作正常,它将打印 3、2 和 1 按照这个顺序,每个人都在自己的路线上。
new_stack = Stack()
new_stack.stack_push(1)
new_stack.stack_push(2)
new_stack.stack_push(3)
print(new_stack.stack_pop())
print(new_stack.stack_pop())
print(new_stack.stack_pop())
我的代码确实按此顺序打印 3,2,1,每个整数在单独的行上。不过,我不应该使用 .pop ,直到我解决了这个问题后我才意识到。另外,我基本上是一个初学者,并且在这个问题中被介绍了 .pop 方法。
【问题讨论】:
标签: python