二叉樹練習(知先序中序求層次)

2021-09-16 13:09:09 字數 881 閱讀 4143

寫了一些題發現自己二叉樹還有點弱

先是建樹 沒什麼特別 就是 邊界條件注意一下

node *build(node *root,int left,int right)

if(i > left && i < right)

if(i >= left && i < right -1)

return root;

}

然後就是層次遍歷 我用了個佇列把每個節點的左右節點存在後面再pop出當前節點

void cengci(node *root)

if(p.front() -> right != null)

p.pop();

}}

完整的**

#includeusing namespace std;

struct node

};int a[30];

int b[30];

int cnt = 0;

node *build(node *root,int left,int right)

if(i > left && i < right)

if(i >= left && i < right -1)

return root;

}void cengci(node *root)

if(p.front() -> right != null)

p.pop();

}}int main()

for(int i = 0;i < n;i++)

root = build(root,0,n);

cengci(root);

return 0;

}

中序後序,中序先序求二叉樹

用後序,中序求二叉樹 includeusing namespace std int n int a 105 b 105 mapl,r int build int la,int ra,int lb,int rb 再在中序中找到這個數的位置 if i rb return root queueq void...

E 求二叉樹的層次遍歷(先序中序求層序)

description 已知一顆二叉樹的前序遍歷和中序遍歷,求二叉樹的層次遍歷。input 輸入資料有多組,輸入t,代表有t組測試資料。每組資料有兩個長度小於50的字串,第乙個字串為前序遍歷,第二個為中序遍歷。output 每組輸出這顆二叉樹的層次遍歷。sample input 2abc bacab...

先序求二叉樹

題的意思也比較好理解,就是給出中序和後序遍歷的次序,讓你輸出樹的前序遍歷的次序。樹的結點構造 struct node node root 從根節點開始,按找先訪問父母結點,再訪問左子樹和右子樹的順序規則,一直遍歷到空結點就結束當前子樹的遍歷。void preoder node n void preo...