二叉樹的查詢方式有三種,分別是先序中序和後序。
先序思路:
判斷當前的節點中的no和傳過來要查詢的是否一致
相等返回
不相等判斷當前節點左子節點是否為空 如果不為空 繼續比較 查詢返回
如果 為空 或者沒有找到 檢視右子節點 查到返回否則返回null
中序思路:
判斷當前的左子節點是否為空,不為空遞迴查詢左子節點 查到返回
左子節點為空或者左邊沒有查到,查詢當前節點 查到返回
根節點查不到 查詢右子節點 查到返回否則返回null
後序思路:
判斷當前的左子節點是否為空,不為空遞迴查詢左子節點 查到返回
左子節點為空或者左邊沒有查到 查詢右子節點 沒查到或為空
查詢當前節點 查到返回否則返回null
**實現:
package tree;
public
class
binarytree
}//二叉樹類
class
binarytreeclass
//中序遍歷
public
void
midorder()
//後序遍歷
public
void
postorder()
//前序查詢 --------------------------------------------
public hreonode preserach
(int no)
//中序查詢
public hreonode midsreach
(int no)
//後序查詢
public hreonode postsreach
(int no)
public hreonode getroot()
public
void
setroot
(hreonode root)
}//節點類
class
hreonode
//中序
public
void
midorder()
//後序
public
void
postorder()
//查詢
//先序
public hreonode preserach
(int no)
//中序
public hreonode midsreach
(int no)
//後序
public hreonode postsreach
(int no)
public
hreonode
(int no, string name)
public
intgetno()
public
void
setno
(int no)
public string getname()
public
void
setname
(string name)
public hreonode getleft()
public
void
setleft
(hreonode left)
public hreonode getright()
public
void
setright
(hreonode right)
@override
public string tostring()
';}}
結果:
資料結構之二叉樹
在二叉樹中每個節點最多只能有兩個子節點。即左子節點和有子節點。在二叉樹中最重要的操作應當是遍歷。即按照某一順序訪問二叉樹中的每乙個節點。一般有如下幾種遍歷方法 1 前序遍歷,即先訪問根幾點,然後再訪問左子節點,最後訪問右子節點。2 中序遍歷,即先訪問左子節點,然後再訪問根節點,最後訪問右子節點。3 ...
資料結構之二叉樹
定義 滿足以下條件的就是樹 1.有且僅有乙個特定的稱為根root的結點。2.當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每個集合本身又是乙個棵樹,並稱為根的子樹。樹是資料結構中一種常見的資料結構,比如我們排序中常見的二叉樹,紅黑樹等。最常見的是樹形表示法和廣義表表示法。樹的結構示意...
資料結構之二叉樹
來看一下樹的結構 class treenode public treenode string value 首先,為了方便後面看到效果,先手動初始化乙個有4個節點的二叉樹 tree tree new tree treenode root new treenode root treenode node1...