1
我有一個整數的平衡二叉搜索樹,我想找到最大的節點,它存儲的整數大於或等於一個固定的數字,如a
使用函數如ask(a)
。Inorder在BST中遍歷
例如假設我在我的樹添加了以下幾點,8,10,3,6,1,4,7,14,13
那棵樹會是這樣:
現在ask(1)
應該1
,ask(3)
應該3
,ask(2)
應該是3
等等。
我覺得我可以用Inorder遍歷來寫我的ask
函數,但是我不知道如何。
Ⅳ書面這段代碼到目前爲止:
inorderFind(node->left, a);
if (node->key.getX() >= a)
return node;
inorderFind(node->right, a);
第一個參數是當前樹節點,並a
是a
上面說明。我知道當if條件成立時,我可以使用一個bool
變量,如flag
,並將其設置爲true
,然後它將防止走過樹的其他節點並返回假節點。還有什麼我可以做的嗎?