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