來看一下樹的結構:
class treenode
public
treenode(string value)
}
首先,為了方便後面看到效果,先手動初始化乙個有4個節點的二叉樹:
tree tree = new tree();
treenode root = new treenode("root");
treenode node1 = new treenode("ndoe1");
treenode node2 = new treenode("ndoe2");
treenode node3 = new treenode("ndoe3");
root.left = node1;
root.right = node2;
node1.left = node3;
查詢節點
//查詢節點
public treenode findnode(treenode treenode, string value)
計算樹的深度
//計算樹的深度
//遞迴方法
public
intdeepth(treenode treenode)
清空樹
//清空二叉樹
public
void
cleartreenode(treenode treenode)
}
遞迴遍歷
//遍歷1 先序遍歷
public
void
showdlr(treenode treenode)
}//遍歷2 中序遍歷
public
void
showldr(treenode treenode)
}//遍歷3 後序遍歷
public
void
showlrd(treenode treenode)
}
按層遍歷
//遍歷4 按層遍歷 借助佇列 先進先出
public
void
showbylevel(treenode treenode)
if(null != current.right)
}}
執行結果:
樹的深度是:3
先序遍歷:
root-->ndoe1-->ndoe3-->ndoe2-->
中序遍歷:
ndoe3-->ndoe1-->root-->ndoe2-->
後序遍歷:
ndoe3-->ndoe1-->ndoe2-->root-->
按層遍歷
root-->ndoe1-->ndoe2-->ndoe3-->
資料結構之二叉樹
在二叉樹中每個節點最多只能有兩個子節點。即左子節點和有子節點。在二叉樹中最重要的操作應當是遍歷。即按照某一順序訪問二叉樹中的每乙個節點。一般有如下幾種遍歷方法 1 前序遍歷,即先訪問根幾點,然後再訪問左子節點,最後訪問右子節點。2 中序遍歷,即先訪問左子節點,然後再訪問根節點,最後訪問右子節點。3 ...
資料結構之二叉樹
定義 滿足以下條件的就是樹 1.有且僅有乙個特定的稱為根root的結點。2.當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每個集合本身又是乙個棵樹,並稱為根的子樹。樹是資料結構中一種常見的資料結構,比如我們排序中常見的二叉樹,紅黑樹等。最常見的是樹形表示法和廣義表表示法。樹的結構示意...
資料結構之二叉樹
資料結構 大一學c 的時候就非常頭疼的東西,沒想到現在js都要考資料結構與演算法了,看到有面試題手寫乙個二叉樹插入,對比劍指offer上的題真算得上是太簡單了。本次整合一下做過的二叉樹題的思路和 希望能對邏輯思維的提公升有個幫助。寫出二叉樹插入方法insert。分析 首先判斷根節點有無,如果沒有就賦...