二叉樹的遍歷 遞迴

2021-08-07 18:46:11 字數 831 閱讀 3858

時間限制: 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 和...