查詢也有前序查詢、中序查詢、後序查詢三種方式,以中序查詢為例,如果某次查詢到了待查詢節點直接將這個節點返回,這時候棧來到上一層,直接返回的話,如果沒有找到,那就不會繼續找也直接返回了,因此需要判斷在下一層是否已經找到了,如果找到了那就不需要繼續尋找直接返回。如果沒找到還是要繼續去找,使用乙個臨時節點來接受下一層返回的資料,如果是空的,說明沒找到,繼續尋找,如果不是空的,那就直接返回,對右遍歷來說,也是如此,不過發現不管找沒找到都要返回這個接受變數,因此直接返回即可;
**如下:
node infixfind
(string id)if(
this
.id.
equals
(id))if
(result != null)if(
this
.right != null)
if(result != null)
return null;
}
二叉樹 二叉樹的查詢
三種查詢方式 前序查詢 中序查詢 後序查詢。前序查詢 比較當前節點,如果是,返回查詢結果。如果不是就向左遞迴查詢,如果左邊沒有就向右邊遞迴查詢。設定no 5,針對該題,前序遍歷共4次。中序遍歷 先向左遞迴查詢,如果左子樹沒有,再比較當前節點,如果仍然不是則向右遍歷查詢。後序遍歷 先向左遞迴查詢,如果...
二叉樹 二叉查詢樹
構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...
二叉樹 二叉查詢樹
二叉樹 binary tree 一種樹型結構,每個節點最多擁有兩個節點。如下圖 幾種型別的二叉樹 1.full binary tree 每個節點的孩子數 是 0 或者 2.對高度沒有要求。如下圖 2.perfect binary tree 這個就是最完美的樹,顧名思義,所有葉子節點都有相同的深度,並...