樹是一種比較重要的資料結構,尤其是二叉樹。二叉樹是一種特殊的樹,在二叉樹中每個節點最多有兩個子節點,一般稱為左子節點和右子節點(或左孩子和右孩子),並且二叉樹的子樹有左右之分,其次序不能任意顛倒。二叉樹是遞迴定義的,因此,與二叉樹有關的題目基本都可以用遞迴思想解決,當然有些題目非遞迴解法也應該掌握,如非遞迴遍歷節點等等。
要學好二叉樹,要對遞迴的技巧有一定的掌握,需要平時的積累吧。
接下來為大家介紹一下建立二叉樹和遍歷二叉樹
首先建立乙個二叉樹的結點的結構體
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...