樹的先中後序

2021-10-05 07:10:37 字數 1091 閱讀 1991

遞迴先序:1.先輸出根2.再輸出左子3.最後輸出右子。

中序:1.先輸出左子2.再輸出根3.最後輸出右子。

後序:1.先輸出左子2.再輸出右子3.最後輸出根。

遞迴出棧時會依次輸出。

//樹的先中後序 

#include

//先序-根左右

intpreorder

(int arr,

int n)

printf

("%d "

,arr[n]);

preorder

(arr,

2*n+1)

;preorder

(arr,

2*n+2)

;}//中序-左根右

intinorder

(int arr,

int n)

inorder

(arr,

2*n+1)

;printf

("%d "

,arr[n]);

inorder

(arr,

2*n+2)

;}//後序-左右根

intlatorder

(int arr,

int n)

latorder

(arr,

2*n+1)

;latorder

(arr,

2*n+2)

;printf

("%d "

,arr[n]);

}int

main()

;preorder

(arr,0)

;//先序

printf

("\n");

inorder

(arr,0)

;//中序

printf

("\n");

latorder

(arr,0)

;//後序

return0;

}

樹的先序 中序 推後序, 後序 中序 推先序

根據中序遍歷 先序遍歷構建 輸出後序遍歷 後序遍歷為左右根 遞迴的返回條件中序遍歷中 左子樹和右子樹 過i將中序遍歷中的樹分為左子樹和右子樹 i為中序遍歷的根節點 需要輸出的結點 每棵樹都是自己 的根結點 2.確定左子樹的start,與 end範圍,同時通過先序陣列找到此時的根節點 上乙個根結點 1...

樹 先序中序後序遍歷

題目分析 題目描述 description 求一棵二叉樹的前序遍歷,中序遍歷和後序遍歷 輸入描述 input description 第一行乙個整數n,表示這棵樹的節點個數。接下來n行每行2個整數l和r。第i行的兩個整數li和ri代表編號為i的節點的左兒子編號和右兒子編號。輸出描述 output d...

後序 中序 》先序

已知後序與中序輸出前序 先序 後序 3,4,2,6,5,1 左右根 中序 3,2,4,1,6,5 左根右 分析 因為後序的最後乙個總是根結點,令i在中序中找到該根結點,則i把中序分為兩部分,左邊是左子樹,右邊是右子樹。因為是輸出先序 根左右 所以先列印出當前根結點,然後列印左子樹,再列印右子樹。左子...