C語言 二叉樹的遍歷

2021-08-07 16:00:18 字數 1183 閱讀 6315

樹是一種比較重要的資料結構,尤其是二叉樹。二叉樹是一種特殊的樹,在二叉樹中每個節點最多有兩個子節點,一般稱為左子節點和右子節點(或左孩子和右孩子),並且二叉樹的子樹有左右之分,其次序不能任意顛倒。二叉樹是遞迴定義的,因此,與二叉樹有關的題目基本都可以用遞迴思想解決,當然有些題目非遞迴解法也應該掌握,如非遞迴遍歷節點等等。

要學好二叉樹,要對遞迴的技巧有一定的掌握,需要平時的積累吧。

接下來為大家介紹一下建立二叉樹和遍歷二叉樹

首先建立乙個二叉樹的結點的結構體

typedef struct tree

tree;

建立二叉樹結點的函式

tree* create_node(int data)            //建立樹的結點,返回這個結點的位址

建立乙個二叉樹的函式

tree* create_tree(int n)              //建立乙個簡單的二叉樹,返回根節點的位址

接下來就是遍歷二叉樹了

首先給大家寫出先序遍歷的**。

void show_tree_pre(tree *root)       //先序遍歷,就是將要操作樹的**寫在遞迴的前面

中序遍歷

void show_tree_mid(tree *root)       //中序遍歷,就是將要操作樹的**寫在兩條遞迴**的中間

後序遍歷

void show_tree_post(tree *root)       //後續遍歷

以上就是二叉樹的三種基本遍歷方式。

下面寫出主函式

int main()

輸出結果為

1-2-4-8-9-5-3-6-7-

8-4-9-2-5-1-6-3-7-

8-9-4-5-2-6-7-3-1-

終結一下,先序就是根->左子樹->右子樹  

中序則是左子樹->根->右子樹

後序是 左子樹->右子樹->根

以上面三種方式遞迴,可以遍歷整個二叉樹

c語言遍歷二叉樹實現

include include typedef struct node bitnode,bitree void createbitree bitree bt void preorder bitree root 先序遍歷二叉樹,root為指向二叉樹 或某一子樹 根結點的指標 void inorder ...

遞迴遍歷二叉樹 C語言

之前寫了關於二叉樹的非遞迴遍歷演算法的 今天把二叉樹的遞迴遍歷演算法的 補上,內容很簡單!但是今天也算是寫了一會兒 了 姑且這麼認為吧 include include typedef struct bitnode bitnode,bitree 二叉樹節點 二叉樹先序遍歷 void prebitree...

C 二叉樹的表達 遍歷二叉樹

樹結構是一種資料結構,它由節點 node 以及連節點的邊 edge 構成。如果一棵樹具有乙個叫為根 root 的特殊節點,那麼這棵樹稱作有根數 rooted tree 樹結構有如下的定義 二叉樹的定義 擁有乙個根節點,所有節點的子節點不超過2的樹稱為二叉樹。include include using...