二叉樹的建立與遍歷 二叉樹遍歷模板)

2021-09-12 08:02:27 字數 1551 閱讀 8530

初學二叉樹,感覺之前鍊錶掌握不熟練導致接受有點難,現在做一些總結。

本題其實就是根據給出的前序遍歷(包括空子樹),寫出相應的前序、中序和後序遍歷。

廢話不多說,先看看題目:

description

下面給出了教材中演算法6.4所示的演算法。

status   createbitree ( bitree  &t )

return ok;

}

該演算法按照給出的先序序列順序建立二叉樹的二叉鍊錶。要求實現該演算法。

input

包含多組測試資料。每組測試資料一行,給出二叉樹的先序遍歷序列(至少1個結點)。

output

輸出二叉樹的先序,中序和後序遍歷結果。

sample input

abc ^ ^ de ^ g ^ ^ f ^ ^ ^

a ^ ^

ab ^ ^ c ^ ^

sample output

abcdegf

cbegdfa

cgefdbaaa

aabc

bacbca

————————————————————————————————————————

首先講講各種遍歷方法:(這裡只講遞迴,並不講用棧的方式)

**為

typedef

struct node

tree;

void

preorder

(tree*

&t)}

**如下:(之後省略樹的結構體**)

void

inorder

(tree*

&t)}

**如下:

void

postorder

(tree*

&t)}

思路: 模擬一遍前序遍歷,然後賦相應的值,^ 則賦 null,不是 ^ 則賦該值給data域*,構建二叉樹

#include

using namespace std;

char c[

1001];

int tot;

typedef

struct node

tree;

void

create

(tree*

&t)//根據前序構建二叉樹

}void

preorder

(tree*

&t)//前序遍歷

}void

inorder

(tree*

&t)//中序遍歷

}void

postorder

(tree*

&t)//後序遍歷

}int

main()

return0;

}

其實這道題終歸來講,還是需要熟悉二叉樹的各種遍歷方式,其他的也都迎刃而解了.

二叉樹的遍歷 二叉樹遍歷與儲存

在資料結構中,二叉樹是非常重要的結構。例如 資料庫中經常用到b 樹結構。那麼資料庫是如何去單個查詢或者範圍查詢?首先得理解二叉樹的幾種遍歷順序 先序 中序 後序 層次遍歷。先序 根節點 左子樹 右子樹 中序 左子樹 根節點 右子樹 後序 左子樹 右子樹 根節點 按層級 class node if c...

二叉樹建立 遍歷

include include include include using namespace std typedef struct node char ch struct node lchild,rchild bitnode,bitree int treenum 0 總結點數 void creat...

二叉樹建立與遍歷

二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱為 左子樹 和 右子樹 二叉樹的每個節點最多只能右兩棵子樹,子樹有左右之分,次序不能顛倒。除了葉結點外每乙個結點都有左右子葉且葉子結點都處在最底層的二叉樹。假設二叉樹的高度為k,除第k層外,其他各層的節點數都達到最大個數。也就是第一層到第k 1層為...