時間限制: 1 sec 記憶體限制: 128 mb
提交: 18 解決: 8 [
提交][
狀態][
討論版]
對於二叉樹t,可以有先序遍歷、中序遍歷和後序遍歷三種遍歷方式。現在我們要求給出一棵二叉樹的先序遍歷序列和中序遍歷序列,輸出它的廣度優先遍歷序列。
第一行為乙個整數t(0為每個測試用例單獨一行輸出廣度優先遍歷序列。
2dbacegf abcdefgbcad cbad
dbeacgfbcad本題主要測試對二叉樹遍歷的理解。需要先根據先序序列和中序序列建立二叉樹,然後對二叉樹進行按層次的遍歷。
ac原始碼:
#include #include #include #include #include using namespace std;
struct node
};node* build_tree(vectorx,vectory)
void bfs(node* root)
}int t;
int main()
{ cin>>t;
while(t--)
{ vectorx,y;
char s1[30],s2[30];
scanf("%s %s",s1,s2);
for(int i=0;s1[i];i++)
x.push_back(s1[i]);
for(int i=0;s2[i];i++)
y.push_back(s2[i]);
node* root=build_tree(x,y);
bfs(root);
cout<
遞迴遍歷二叉樹
include include include 二叉鍊錶表示法 typedef struct tag bitnode bitnode 先序遍歷 void xianxuorder bitnode root 先根 printf c root data 左子樹 xianxuorder root lchil...
二叉樹遞迴遍歷
編寫簡單的程式對下圖二叉樹進行遍歷 先訪問根節點 printf c root ch 再遍歷左子樹 recursion root lchild 再遍歷右子數 recursion root rchild 再遍歷左子樹 recursion root lchild 先訪問根節點 printf c root ...
二叉樹的遞迴遍歷
所謂二叉樹的遍歷,本質上就是沿某條搜尋路徑訪問樹中的每個結點,使得每個節點均被訪問一次,而且僅被訪問一次。由二叉樹的基本定義可以知道,遍歷一顆二叉樹首先必須決定對根結點 n 左子樹 l 右子樹 r 的訪問順序,按照先遍歷左孩子再遍歷右孩子的原則,常見的遍歷次序有先序遍歷 nlr 中序遍歷 lnr 和...