給定二叉樹的層次遍歷和中序遍歷 求前序遍歷

2021-10-04 11:03:14 字數 748 閱讀 4475

給定二叉樹的前序遍歷和中序遍歷-----求後續遍歷和層次遍歷

請結合一起看

樹和二叉樹基本上都有先序、中序、後序、按層遍歷等遍歷順序,給定中序和其它一種遍歷的序列就可以確定一棵二叉樹的結構。

假定一棵二叉樹乙個結點用乙個字元描述,現在給出中序和按層遍歷的字串,求該樹的先序遍歷字串。

輸入格式

兩行,每行是由大寫字母組成的字串(一行的每個字元都是唯一的),分別表示二叉樹的中序遍歷和按層遍歷的序列。

輸出格式

一行,表示二叉樹的先序序列。

資料範圍

輸入字串的長度均不超過26。

輸入樣例:

dbeac

abcde

輸出樣例:

abdec
#include#include#include#includeusing namespace std;

struct node

};mappos;

string inorder,level;

queueq;

bool st[30];

void dfs(struct node* root)

int main()

if(position+1< inorder.size()&& !st[position+1])

}dfs(root);

return 0;

}

二叉樹先序遍歷,中序遍歷,後序遍歷,層次遍歷。

原理 如圖 先序遍歷結果為 abdhecfg 首先從根節點開始,然後左節點,左節點成為根節點,然後再左節點,然後右節點 如果左子樹遍歷完後就遍歷該根節點的右子樹 中序遍歷結果為 hdbeafcg 當左節點被讀取後,左節點被當作根節點 後序遍歷結果為 hdebfgca 注意每個節點的左右子樹必須遍歷完...

給定前序遍歷 中序遍歷重建二叉樹

通過講解呢我們會很明顯的感到這是乙個遞迴的問題。從乙個序列劃分成了兩個序列,然後各自再做劃分直到只有單個元素為止。那最簡單的實現思路就是遞迴了。實現思路的講解在這裡,也是嗶哩嗶哩上的。實現起來有個點要注意一下,那就是子樹的元素個數不論在什麼序列中都是相同的。在中序序列裡有10個元素,在前序遍歷裡也有...

層次遍歷和中序遍歷序列建立二叉樹

include include include include include define maxsize 100 typedef char elementtype typedef struct btnode btnode 由層次遍歷和中序遍歷序列生成二叉樹的辦法 自己的辦法 二叉樹的根節點在層次...