前序遍歷 中序遍歷 後序遍歷

2021-08-03 11:51:38 字數 1240 閱讀 7482

只要是搞計算機的,對資料結構中二叉樹遍歷都不陌生,但是如果用到的機會不多那麼就會慢慢淡忘,溫故而之新才是最好的學習方式,現在就重新溫習一下這方面的知識。

首先我想先改變這幾個遍歷的名字(前根序遍歷,中根序遍歷,後根序遍歷);前中後本來就是相對於根結點來說的,少乙個字會產生很多不必要的誤解。

1. 前根序遍歷:先遍歷根結點,然後遍歷左子樹,最後遍歷右子樹。

abdhecfg

2.中根序遍歷:先遍歷左子樹,然後遍歷根結點,最後遍歷右子樹。

hdbeafcg

3.後根序遍歷:先遍歷左子樹,然後遍歷右子樹,最後遍歷根節點。

hdebfgca

已知一棵二叉樹的前根序序列和中根序序列,構造該二叉樹的過程如下:

1. 根據前根序序列的第乙個元素建立根結點;

2. 在中根序序列中找到該元素,確定根結點的左右子樹的中根序序列;

3. 在前根序序列中確定左右子樹的前根序序列;

4. 由左子樹的前根序序列和中根序序列建立左子樹;

5. 由右子樹的前根序序列和中根序序列建立右子樹。

已知一棵二叉樹的後根序序列和中根序序列,構造該二叉樹的過程如下:

1. 根據後根序序列的最後乙個元素建立根結點;

2. 在中根序序列中找到該元素,確定根結點的左右子樹的中根序序列;

3. 在後根序序列中確定左右子樹的後根序序列;

4. 由左子樹的後根序序列和中根序序列建立左子樹;

5. 由右子樹的後根序序列和中根序序列建立右子樹。

根據前根序和中根序列印後根序**:

#include "stdafx.h"

#include #include char prearray = "abdhecfg";

char midarray = "hdbeafcg";

typedef struct binarytree bitree;

struct binarytree

;void createbtree(bitree **node,int mid_header,int mid_tail,int pre_header,int pre_tail)

else

}void showbtree(bitree* p)

}int _tmain(int argc, _tchar* argv)

前序遍歷 中序遍歷 後序遍歷

遍歷是針對根節點的 前序遍歷順序 根節點 左子樹 右子樹 中序遍歷順序 左子樹 根節點 右子樹 後序遍歷順序 左子樹 右子樹 根節點 深入一點去理解這個排序順序是這樣的 前序遍歷 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。中...

前序遍歷 中序遍歷 後序遍歷

前序遍歷 dlr 前序遍歷也叫做先根遍歷 先序遍歷,可記做根左右。前序遍歷首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。若二叉樹 為空則結束返回,否則 1 訪問根結點。2 前序遍歷左子樹。3 前序遍歷右子樹 需要注意的是 遍歷左右...

前序遍歷and中序遍歷and後序遍歷

根據根節點的出現的時間確定前 中 後遍歷。1 前序遍歷首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。前序遍歷結果 abdecf 2 中序遍歷首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹,若二叉樹為空則結束返回,中序遍歷結果 db...