資料結構 樹的遍歷(先序,中序,後序,層次)

2021-10-08 03:27:35 字數 1013 閱讀 7294

通過先序方式建立樹,通過簡單的遞迴就可以實現先序,中序,後序遍歷。

層次遍歷還需要用到佇列,當某個節點出隊時,它的左右結點要入隊(如果有的話)。

#include

#include

using

namespace std;

typedef

struct node

node;

//通過先序方式建立樹,#表示空

/* a

b c

d e f #

# # # # # #

應輸入:abd##e##cf###

前序遍歷:abdecf

中序遍歷:dbeafc

後序遍歷:debfca

層次遍歷:abcdef

*/void

creattree

(node*

&root)

}//列印乙個節點的資料

void

visit

(node* node)

//遞迴-前序遍歷,根左右

void

preorder

(node* root)

}//遞迴-中序遍歷,左根右

void

inorder

(node* root)

}//遞迴-後序遍歷,左右根

void

postorder

(node* root)

}//層次遍歷

void

layerorder

(node* root)

}int

main()

執行結果:

abd##e##cf###

前序遍歷:abdecf

中序遍歷:dbeafc

後序遍歷:debfca

層次遍歷:abcdef

氷鳶鳶鳶

2020.7.15

樹 先序中序後序遍歷

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

樹的遍歷 先序遍歷 中序遍歷 後序遍歷

名詞解釋 1 每個元素稱為節點 2 有乙個特定的節點被稱為根節點或樹根 3 除根節點外的其餘資料元素被分為m個互不相交的集合t1,t2,t3.tm 1,其中每乙個集合ti本身也是乙個樹,被稱作原樹的子樹 節點的度 乙個節點含有子樹的個數稱為該節點的度 葉節點或終端節點 度為0的節點稱為葉節點 非終端...

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

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