我在BST根和頂端使用了兩個指針。頂部指針沿着樹移動以供插入和顯示。現在我的問題是在我的順序代碼中。我移動上面的指針沿樹向下,直到時間NULL通過遞推找到如下樹二叉搜索樹中序樹顯示
void display()
{
if(top->left!=NULL)
{
top=top->left;
display();
}
cout<<"\n\nnow the address of top is "<<top;
return;
}
元件是用於暫時12 11和10;現在在函數的最後遞歸調用中,頂部指針在10處移動,但如何在最後一個函數之後將頂部指針移回;在每個cout中top的地址是10意味着即使控制回到先前的遞歸函數,指針仍然保持在10。在這段代碼中有兩個遞歸函數,顯示稱爲兩次,在第二個顯示函數之後,頂部指針不會向上移動樹,而是保持在10,我想在每次遞歸顯示函數完成後移回頂部指針。幫幫我。但不涉及顯示功能中的自變量。
_「但不涉及顯示函數中的自變量」_ **爲什麼?!?** –
由於您沒有任何指向父節點的鏈接,因此您必須使用「堆棧」來推送在遍歷到子樹或節點之前的當前節點位置。 –