寫了一些題發現自己二叉樹還有點弱
先是建樹 沒什麼特別 就是 邊界條件注意一下
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...