題目: 二叉樹的不同形態
問題描述
給定二叉樹t(樹深度h<=10,深度從1開始,結點個數n<1024,結點編號1~n)的層次遍歷序列和中序遍歷序列,輸出t從左向右葉子結點以及二叉樹先序和後序遍歷序列。
輸入格式
輸入共三行:第一行是整數n,表示二叉樹中的結點數目;第二行有n個整數,表示該二叉樹的層次遍歷序列;第三行也是n個整數,表示該二叉樹的中序遍歷序列。整數間以空格隔開。
輸出格式
輸出三行,分別是:從左向右的葉子結點,先序遍歷序列,後序遍歷序列。結點編號用空格隔開。
樣例輸入
73 5 4 2 6 7 1
2 5 3 6 4 7 1
樣例輸出
2 6 1
3 5 2 4 6 7 1
2 5 6 1 7 4 3
題目解析:
明天補上
題目原始碼:
//creat by 絕跡
#include
#include
#define ok 1
#define error -1
typedef
struct treenode
treenode,
*tree;
treenode*
creattree
(int level,
int in,
int left1,
int right1,
int left2,
int right2)}if
(flag ==1)
break;}
root->data = level[i]
; root->lchild =
creattree
(level, in, left1 +
1, right1, left2, j -1)
; root->rchild =
creattree
(level, in, left1 +
1, right1, j +
1, right2)
;return root;}}
void
postorder
(tree t)
}void
preorder
(tree t)
}void
printleaf
(tree t)
printleaf
(t->lchild)
;printleaf
(t->rchild);}
}int
main()
for(
int j =
0; j < n; j++
) treenode* t =
null
; t =
creattree
(level,in,
0,n-1,
0,n-1)
;printleaf
(t);
printf
("\n");
preorder
(t);
printf
("\n");
postorder
(t);
return0;
}
n個結點,不同形態的二叉樹(數目 生成)
不同的二叉查詢樹 不同的二叉查詢樹 ii 給出n 3,有5種不同形態的二叉查詢樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3可以分析,當n 1時,只有1個根節點,則只能組成1種形態的二叉樹,令n個節點可組成的二叉樹數量表示為h n 則h 1 1 h 0 0 當n 2時,1個根節點固定...
n個結點,不同形態的二叉樹(數目 生成)
不同的二叉查詢樹 不同的二叉查詢樹 ii 給出n 3,有5種不同形態的二叉查詢樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3 可以分析,當n 1時,只有1個根節點,則只能組成1種形態的二叉樹,令n個節點可組成的二叉樹數量表示為h n 則h 1 1 h 0 0 當n 2時,1個根節點固...
n個結點,不同形態的二叉樹(數目 生成)
不同的二叉查詢樹 不同的二叉查詢樹 ii 給出n 3,有5種不同形態的二叉查詢樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3可以分析,當n 1時,只有1個根節點,則只能組成1種形態的二叉樹,令n個節點可組成的二叉樹數量表示為h n 則h 1 1 h 0 0 當n 2時,1個根節點固定...