time limit: 1000ms
memory limit: 65536kb
submit
statistic
problem description
已知一棵二叉樹的前序遍歷和中序遍歷,求二叉樹的後序遍歷和層序遍歷。
input
輸入資料有多組,第一行是乙個整數t (t<1000),代表有t組測試資料。每組包括兩個長度小於50 的字串,第乙個字串表示二叉樹的先序遍歷序列,第二個字串表示二叉樹的中序遍歷序列。
output
每組第一行輸出二叉樹的後序遍歷序列,第二行輸出二叉樹的層次遍歷序列。
example input
2abdegcf
dbgeafc
xnliu
lnixu
example output
dgebfcaabcdefg
linux
xnuli
hint
author
ma6174
#include using namespace std;
struct btree
;char pre[10010];//前序序列
char mid[10010];//中序序列
struct btree* creat(int len, char *pre, char *mid)//二叉樹的重建
root = new btree;
root -> data = pre[0];//找到根節點(前序遍歷的第一位)
for(i = 0; i < len; i++)//在中序序列中找到根節點的位置
root -> lc = creat(i, pre + 1, mid);//遞迴遍歷(左子樹的長度,左子樹在pre中開始位置的位址,左子樹在mid中開始位置的位址)
root -> rc = creat(len-i-1, pre+i+1, mid+i+1);//(右子樹的長度,右子樹在pre中開始位置的位址,右子樹在mid中開始位置的位址)
return root;
};void lrd(struct btree *root)//後序遍歷
}void cengxu(struct btree * root)//以層序遍歷的方式,尋找葉子節點
}int main()
}return 0;
}
資料結構實驗之求二叉樹後序遍歷和層次遍歷
已知一棵二叉樹的前序遍歷和中序遍歷,求二叉樹的後序遍歷。輸入資料有多組,第一行是乙個整數t t 1000 代表有t組測試資料。每組包括兩個長度小於50 的字串,第乙個字串表示二叉樹的先序遍歷序列,第二個字串表示二叉樹的中序遍歷序列。每組第一行輸出二叉樹的後序遍歷序列,第二行輸出二叉樹的層次遍歷序列 ...
資料結構實驗之求二叉樹後序遍歷和層次遍歷
time limit 1000ms memory limit 65536k 已知一棵二叉樹的前序遍歷和中序遍歷,求二叉樹的後序遍歷。輸入資料有多組,第一行是乙個整數t t 1000 代表有t組測試資料。每組包括兩個長度小於50 的字串,第乙個字串表示二叉樹的先序遍歷序列,第二個字串表示二叉樹的中序遍...
資料結構實驗之求二叉樹後序遍歷和層次遍歷
資料結構實驗之求二叉樹後序遍歷和層次遍歷 time limit 1000ms memory limit 65536k 有疑問?點這裡 題目描述 已知一棵二叉樹的前序遍歷和中序遍歷,求二叉樹的後序遍歷。輸入 輸入資料有多組,第一行是乙個整數t t 1000 代表有t組測試資料。每組包括兩個長度小於50...