4
我試圖在C++中實現一個BST。這是一個特定的成員函數,用於執行遍歷並返回帶有樹的元素的向量。 現在問題出現在我設置爲當前節點的堆棧pop()函數中。
void value not ignored as it ought to be
BST:void值不會被忽略,因爲它應該是
據我所知,空棧將前面的pop()方法call.But那麼什麼是解決這個,因爲它是需要在這個traversal algorithm檢索從堆棧中的最後一個節點後,返回一個空值。
vector <int> BSTree::in_order_traversal()
{
vector <int> list;
stack <Node *> depthStack;
Node * cur = root;
while (!depthStack.empty() || cur != NULL) {
if (cur != NULL) {
depthStack.push(cur);
cur = cur->left;
}
else {
cur = depthStack.pop(); // Heres the line
list.push_back(cur->key);
cur = cur->right;
}
}
return list;
}
你做你的代碼有空隙返回函數的「返回值」的東西。停止這樣做是沒有意義的。 – Mat