資料結構之二叉樹 C語言

2021-08-15 07:39:36 字數 993 閱讀 6402

二叉樹是一種依託指標建立的資料結構。二叉樹結構體中包含資料域和兩個指標,乙個指向左樹,乙個指向右樹。開始的第乙個結點稱為二叉樹的根節點,需要建立乙個指向根節點的指標,這樣才能訪問整棵二叉樹。

我所知的有兩種建立方式。第一種是設個函式的返回型別為二叉樹結點結構體。例如:

typedef struct treenodetreenode,*ptreenode;

ptreenode create(ptreenode node)btreenode,*pbtreenode;

二叉樹的建立:

void createtree(pbtreenode &node) 

else

}

二叉樹的先序遍歷:

void ergodic_first(pbtreenode node)

}

二叉樹的中序遍歷:

void ergodic_middle(pbtreenode node)

}

二叉樹的後序遍歷:

void ergodic_behind(pbtreenode node)

}

求二叉樹的深度:

int treedeepth(pbtreenode node)

主函式:

int main()
可以發現二叉樹的建立、遍歷、求深度都使用到了遞迴。這是由二叉樹的結構決定的。

對比鍊錶,可以發現鍊錶也使用了指標訪問下乙個結點。可見鍊錶也可以採用遞迴的演算法完成建立、遍歷、求長、刪除等功能。如,建立乙個單鏈表。

typedef struct linknodelinknode;

void createlink(linknode *node)

但是,這種方式明顯占用很多的記憶體。

資料結構之二叉樹 C語言

二叉樹是一種依託指標建立的資料結構。二叉樹結構體中包含資料域和兩個指標,乙個指向左樹,乙個指向右樹。開始的第乙個結點稱為二叉樹的根節點,需要建立乙個指向根節點的指標,這樣才能訪問整棵二叉樹。我所知的有兩種建立方式。第一種是設個函式的返回型別為二叉樹結點結構體。例如 typedef struct tr...

資料結構之二叉樹 C 二

目錄 table of contents 類的部分實現 二叉樹是一種特殊的樹,在上一節中也介紹了樹的其他形式,例如 霍夫曼樹,b樹等。其中,二叉樹的常用操作有 1.確定樹高 2.確定元素數目 3.複製 4.顯示或列印二叉樹 5.確定兩顆二叉樹是否一樣 6.刪除整顆樹 這些操作都可以通過有步驟的遍歷二...

資料結構之二叉樹

在二叉樹中每個節點最多只能有兩個子節點。即左子節點和有子節點。在二叉樹中最重要的操作應當是遍歷。即按照某一順序訪問二叉樹中的每乙個節點。一般有如下幾種遍歷方法 1 前序遍歷,即先訪問根幾點,然後再訪問左子節點,最後訪問右子節點。2 中序遍歷,即先訪問左子節點,然後再訪問根節點,最後訪問右子節點。3 ...