【发布时间】:2020-09-02 06:44:54
【问题描述】:
我目前无法弄清楚如何执行此操作。我现在的想法是让堆栈pop()this 每次在其内部递归调用print,但这对我不起作用。
template <class T>
void Stack<T>::print() const {
if (top->next == nullptr) {
cout << "End of list" << endl;
}
else {
cout << top->data;
this->pop();
print();
}
}
当我通过 Stack<int> test 在我的 main 中声明一个 int 类型的 Stack 时,我收到错误 "passing const Stack<int> as 'this' argument discards qualifiers。
【问题讨论】:
-
你不能顺序输出包含 N 个元素且复杂度为 O(1) 的东西。:)
-
您的问题是关于如何以 O(1) 时间复杂度打印链表,还是关于构建错误?请确保问题的标题是您所问问题的简短摘要。你实际上是在问一个问题。请花点时间刷新How to Ask 和this question checklist。
-
@VladfromMoscow 哎呀,我看错了作业;我们实际上应该只是递归地打印它,它实际上并没有提及时间复杂度。
-
@Logan87654321 错误信息的意思是一些使用的函数top或pop不是常量函数。
-
为了递归,函数应该在某个时候调用自己。你的函数在哪里调用自己?
标签: c++ recursion linked-list stack function-definition