二叉樹的中序遍歷

2022-08-21 06:00:16 字數 995 閱讀 2950

在電腦科學中,二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作「左子樹」(left subtree)和「右子樹」(right subtree)。如下圖,每個節點有乙個編號。樹的訪問方式叫做中序遍歷,方法為:首先中序遍歷左(右)子樹,再訪問根,最後中序遍歷右(左)子樹。如下圖,中序遍歷為:4、3、7、1、6、2、5、8。現在輸入一棵二叉樹(根的編號一定是1),請你輸出二叉樹的中序遍歷。

輸入格式:

第一行,乙個整數n,代表二叉樹節點個數,它的範圍在[1...10000];

第2-n+1行,每行三個整數,第乙個整數代表第i個節點的編號,第二個整數左兒子的編號,第三個整數為右兒子的編號,如果沒有左或者右兒子則為0。

輸出格式:

依次輸出二叉樹中序遍歷節點。

輸入樣例:

8 

1 3 5

2 0 0

3 4 7

4 0 0

5 6 8

6 0 2

7 0 0

8 0 0

輸出樣例:

4 3 7 1 6 2 5 8

思路:搜左,出根,搜右。

//

程式名:新的c++程式

//#include

#include

#include

using

namespace

std;

intf;

struct

tree

a[10001

];void mid(int

i)int

m;int

main()

view code

二叉樹中序遍歷

訪問根結點的的左子樹,訪問根結點和訪問根結點的右子樹依次記作 l,d r 中序遍歷 ldr 演算法 遍歷根結點的左子樹,訪問根結點 遍歷根結點的右子樹 對於上面的圖,我們假定只有a,b,c三個結點,則中序遍歷結果為 b a c 採用上節 二叉樹鏈式儲存和前序遍歷 中的遞迴推演 db a c d b ...

二叉樹中序遍歷

二叉樹中序遍歷 非遞迴版本的中序遍歷用棧來實現。乙個元素出現在棧頂一次,這一次會被處理並出棧。trick 用乙個指標去記錄當前節點cur,如果cur left左側還未遍歷,就會將cur入棧並訪問cur left。一行很重要的 是cur cur right,這一句之後如果cur null,則說明棧頂元...

二叉樹先序遍歷和中序遍歷確定二叉樹

由於希望得到一顆二叉樹,所以返回值型別是乙個指向根節點的指標 表示得到了一顆二叉樹 btnode creatbt char pre,char int,int l1,int r1,int l2,int r2 引數列表有傳入的先序序列和後序序列和他們的開頭和結尾 由於是遞迴函式,先寫乙個遞迴出口,顯然是...