我正在尝试将堆栈A的内容推送到堆栈B。同时,我希望保持两个堆栈的顺序。为此,我想使用堆栈C。我尝试在以下函数中执行此操作:
class Stack:
...
def pop(self):
self.items.pop()
self.topindex -= 1
return self
def some_func(A, B, C):
for item in A.items:
while A.topindex is not 0:
A.push(A.pop(item), C)
for items in C.items:
while C.topindex is not 0:
C.push(C.pop(item), B)
...
topindex是堆栈中最后一项的索引。 如果堆栈中有2个项,则topindex将为2。在
但是,执行时会抛出一个错误: TypeError:pop()接受1个位置参数,但给出了2个
我也试着用这篇文章(Push a stack onto another stack)寻求帮助,但这对我也没用,主要是因为我对c一无所知。在
您没有提供完整的堆栈实现供我使用,但是Python的list类型已经有一个pop方法,所以您可以像使用堆栈一样使用它们。在
有一些更简单的方法来操作列表,但是上面介绍了如何只使用push(append)/pop来移动堆栈的元素。在
您的堆栈实现应该有一个等价的},并有某种方法来判断它是否为空以结束while循环。在
.append()
和{相关问题 更多 >
编程相关推荐