二叉樹遍歷

2021-07-02 12:44:19 字數 1160 閱讀 1242

題目描述:

二叉樹的前序、中序、後序遍歷的定義:

前序遍歷:對任一子樹,先訪問跟,然後遍歷其左子樹,最後遍歷其右子樹;

中序遍歷:對任一子樹,先遍歷其左子樹,然後訪問根,最後遍歷其右子樹;

後序遍歷:對任一子樹,先遍歷其左子樹,然後遍歷其右子樹,最後訪問根。

輸入:

兩個字串,其長度n均小於等於26。

第一行為前序遍歷,第二行為中序遍歷。

二叉樹中的結點名稱以大寫字母表示:a,b,c....最多26個結點。

輸出:

輸入樣例可能有多組,對於每組測試樣例,

輸出一行,為後序遍歷的字串。

樣例輸入:

abc

bacfdxeag

xdefag

樣例輸出:

bca

xedgaf

#include

#include

#include

using

namespace

std;

//定義樹

struct node

tree[50];

int loc;

//申請節點空間

node *creat()

//前序、中序遍歷結果字串

char str1[30], str2[30];

//後序遍歷

void postorder(node *t)

//還原樹

node* build(int s1, int e1, int s2, int e2)

}//左子樹不空

if (rootldx != s2)

ret->lchild = build(s1 + 1, s1 + (rootldx - s2), s2, rootldx - 1);

//右子樹不空

if (rootldx != e2)

ret->rchild = build(s1 + (rootldx - s2) + 1, e1, rootldx + 1, e2);

return ret;

}int main()

}

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹遍歷

二叉樹的遍歷非常重要,但對已一棵比較複雜的樹,要寫出它的先 中 後序遍歷,往往不是那麼簡單,也很容易犯錯。這裡介紹一種比較直觀且不容易犯錯的方法。對於圖1所示的二叉樹,要寫出它的先 中 後序遍歷,往往很容易出錯。圖 1 其實,我們可以用圖2中的紅線描畫出二叉樹的輪廓。圖 2 而對於樹上的每乙個節點,...

二叉樹遍歷

描述 華為實習生招聘,有一道類似如下的題目 給出二叉樹,如圖1所示 圖 1 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...