先判斷當前的結點node是否等於要查詢的
如果是相等,則返回當前結點
如果不相等,則判斷當前結點的左子結點是否為空,如果不為空,則遞迴前序查詢
如果左遞迴前序查詢,找到結點,則返回,否則繼續判斷,當前結點的右子結點是否為空,如果不空,則繼續向右遞迴前序查詢,如果找到則返回,否則沒有找到。
判斷當前結點的左子結點是否為空,如果不為空,則遞迴中序查詢
如果找到則返回,如果沒有找到,就和當前結點比較,如果是則返回當前結點,否則繼續進行右遞迴中序查詢
如果右遞迴中序查詢找到則返回,否則返回nul
判斷當前結點的左子結點是否為空,如果不為空,則遞迴後序查詢
如果找到則返回,如果沒有找到,就判斷當前結點的右子結點是否為空,如果不為空,則右遞迴後序查詢,如果找到就返回,如果沒有找到
就和當前結點進行比較,如果找到則返回,否則返回nul
1. publicclass
postsearch
12. //
判斷當前結點的左子節點是否為空,如果不為空,則遞迴前序查詢
13. if (root.getleft() != null
)
16. //
2.如果左遞迴前序查詢,找到結點,則返回
17. if (temp != null)
20. //
若以上temp為null,則繼續判斷:
21. //
當前的結點的右子節點是否為空,如果不空,則繼續向右遞迴前序查詢
22. if (root.getright() != null
)
25. return
temp;
26. }
27. }
1. publicclass
infixsearch
7. if (temp != null
)
10. if (boy.getid() ==id)
13. if (boy.getright() != null
)
16. return
temp;
17. }
18. }
1. publicclass
lastsearch
7. if (temp != null
)
10. if (root.getright() != null
)
13. if (temp != null
)
16. if (root.getid() ==id)
19. return
temp;
20.
21. }
22. }
二叉樹 二叉查詢樹
構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 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 這個就是最完美的樹,顧名思義,所有葉子節點都有相同的深度,並...
二叉樹 二叉樹的查詢
三種查詢方式 前序查詢 中序查詢 後序查詢。前序查詢 比較當前節點,如果是,返回查詢結果。如果不是就向左遞迴查詢,如果左邊沒有就向右邊遞迴查詢。設定no 5,針對該題,前序遍歷共4次。中序遍歷 先向左遞迴查詢,如果左子樹沒有,再比較當前節點,如果仍然不是則向右遍歷查詢。後序遍歷 先向左遞迴查詢,如果...