二叉樹查詢

2022-07-09 21:00:17 字數 1753 閱讀 3197

先判斷當前的結點node是否等於要查詢的

如果是相等,則返回當前結點

如果不相等,則判斷當前結點的左子結點是否為空,如果不為空,則遞迴前序查詢

如果左遞迴前序查詢,找到結點,則返回,否則繼續判斷,當前結點的右子結點是否為空,如果不空,則繼續向右遞迴前序查詢,如果找到則返回,否則沒有找到。

判斷當前結點的左子結點是否為空,如果不為空,則遞迴中序查詢

如果找到則返回,如果沒有找到,就和當前結點比較,如果是則返回當前結點,否則繼續進行右遞迴中序查詢

如果右遞迴中序查詢找到則返回,否則返回nul

判斷當前結點的左子結點是否為空,如果不為空,則遞迴後序查詢

如果找到則返回,如果沒有找到,就判斷當前結點的右子結點是否為空,如果不為空,則右遞迴後序查詢,如果找到就返回,如果沒有找到

就和當前結點進行比較,如果找到則返回,否則返回nul

1. public

class

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. public

class

infixsearch   

7.         if (temp != null

)   

10.         if (boy.getid() ==id)   

13.        if (boy.getright() != null

)   

16.         return

temp; 

17.     }  

18. }

1. public

class

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次。中序遍歷 先向左遞迴查詢,如果左子樹沒有,再比較當前節點,如果仍然不是則向右遍歷查詢。後序遍歷 先向左遞迴查詢,如果...