資料結構之二叉樹

2021-08-18 16:54:00 字數 1582 閱讀 1587

來看一下樹的結構:

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。分析 首先判斷根節點有無,如果沒有就賦...