我在运行时遇到错误。它崩溃了,消息是“断言失败:stackTop!= 0”。这不应该是这种情况,因为我将数组的值推入堆栈,因此它应该正常工作。
我将.h和.cpp文件放在a pastebin post中;希望有人可以帮我解决这个问题。
答案 0 :(得分:1)
exchangeStation
弹出station1
中的所有元素,以便它结束为空。
这就是为什么你的堆栈是空的,因此当你试图在top()
的递归调用中调用exchangeStation
时你的断言失败。
事实上,在我看来,如果不是断言失败,这将是无限递归,因为你从不采取任何措施来阻止它。说实话,整个功能很难理解,看起来有点过分。但是,堆栈实现本身并不错。