資料結構 二叉樹 建立與遍歷

2021-07-23 08:50:08 字數 1007 閱讀 8593

一、題目描述

二叉樹的建立與遍歷(binary-tree)

題目描述

給出一棵二叉樹,分別輸出先序、中序、後序遍歷結果。 輸入

第1行:結點數n(1<=n<=100)

以下若干行,每行3個整數,分別表示父結點、左孩子、右孩子。若沒有孩子,對應的整數為0. 輸出

第1行:樹根

第2行:先序遍歷結果,數字間用1個空格分開。

第3行:中序遍歷結果,數字間用1個空格分開。

第4行:後序遍歷結果,數字間用1個空格分開。

樣例輸入

81 2 4

2 0 0

4 8 0

3 1 5

5 6 0

6 0 7

8 0 0

7 0 0

樣例輸出

33 1 2 4 8 5 6 7

2 1 8 4 3 6 7 5

2 8 4 1 7 6 5 3

二、分析

我們發現題目已經把每乙個二叉樹的節點都編了號,我們只需要建立tree結構的結構體就可以了。

struct node;

node tree[105];

用vis陣列來記錄誰不是任何人的兒子(即樹根),在輸入的時候把兒子記錄下來,再判斷樹根

用結構體模擬出樹的結構。

int n,i,x,y,z;

scanf("%d",&n);

for(i=1;i<=n;i++)

for(i=1;i<=n;i++)

接下來就對二叉樹進行遍歷。

printf("%d\n",root);

xxbl(root);//先序遍歷

printf("\n");

zxbl(root);//中序遍歷

printf("\n");

hxbl(root);//後序遍歷

遍歷函式:

void xxbl(int g)//先序遍歷}

接下來的中序遍歷和後序遍歷就以此類推。

總之這道題比較簡單。

資料結構 二叉樹的遍歷與建立

所有節點都只有左子樹的稱為左斜樹 在一棵二叉樹中,如果所有分支節點都存在左子樹和右子樹,並且所有 葉子都在同一層上 這樣的二叉樹被稱為滿二叉樹。二叉樹的建立 struct node node createbinarytree node node return node 前序,後序,中序,層序遍歷 v...

資料結構 二叉樹的建立與遍歷

二叉樹的建立採用struct指標建立結點,每個結點內建兩個struct指標來指向它的左右孩子,其中建立方法可採用先序,中序 後序。這裡僅介紹先序建樹,中序建樹和後序建樹實際上殊途同歸。建樹 如下 typedef struct node btree,btree void build btree t d...

資料結構二叉樹的建立與遍歷

如下 include include using namespace std struct treepoint 建立二叉樹鍊錶 void createtree struct treepoint t else 二叉樹建立 void printf char data,int level 訪問二叉樹結點資...