C語言 二叉樹遍歷 前序, 中序,後序

2021-10-09 11:32:52 字數 1257 閱讀 5666

根結點:沒有父結點的結點

葉結點:沒有子結點的結點

內部結點:乙個結點既不是根結點也不是葉結點

前序遍歷:根節點->左子樹->右子樹(根->左->右)

/* 以遞迴方式 前序遍歷二叉樹 */

void

preorderbinarytree

(binarytree t)

printf

("value = %c\n "

, t->i4value)

;preorderbinarytree

(t->lchild)

;preorderbinarytree

(t->rchild)

;}

中序遍歷:左子樹->根節點->右子樹(左->根->右)

/* 以遞迴方式 中序遍歷二叉樹 */

void

midorderbinarytree

(binarytree t)

midorderbinarytree

(t->lchild)

;printf

("value = %c\n "

, t->i4value)

;midorderbinarytree

(t->rchild)

;}

後序遍歷:左子樹->右子樹->根節點(左->右->根)

/* 以遞迴方式 後序遍歷二叉樹 */

void

backorderbinarytree

(binarytree t)

backorderbinarytree

(t->lchild)

;backorderbinarytree

(t->rchild)

;printf

("value = %c\n "

, t->i4value)

;}

三種遍歷方式對應的**幾乎相同,只是一條語句的位置發生了變化

printf("value = %c\n ", t->i4value);

二叉樹遍歷(前序,中序,後序

二叉樹的遍歷有三種方式,如下 1 前序遍歷 dlr 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根 左 右。2 中序遍歷 ldr 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左 根 右。3 後序遍歷 lrd 首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左 右 根。例1 如上圖...

二叉樹的遍歷 前序 中序 後序

include includetypedef struct bintree treenode,b tree b tree root null 函式的宣告 b tree creat tree int n void print1 void preorder b tree pointer 前序遍歷 voi...

二叉樹的前序 中序 後序遍歷

樹形結構是一類重要的非線性資料結構,其中以樹和二叉樹最為常用。二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用作二叉查詢樹和二叉堆或是二叉排序樹。二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 ...