二叉树数组实现
标签:evel ret span lse return print class 开始 create
1 #include 2
3 void createbtree(int *btree,int *data,int len)
4 {
5 int level; //树的层数
6 int i;
7
8 btree[1] = data[1]; //创建根节点
9 for( i = 2; i //用循环创建其他节点
10 {
11 level = 1; //从层数1开始
12 while ( btree[level] != 0) //是否有子树
13 {
14 if (data[i] > btree[level]) //是左或右子树
15 level = level * 2 + 1; //右子树
16 else
17 level = level * 2; //左子树
18 }
19 btree[level] = data[i]; //存入节点数据
20 }
21 }
22
23
24
25 int main()
26 {
27 int btree[16];
28
29 int data[10] = {0,5,6,4,8,2,3,7,1,9};
30 int i;
31
32 for( i = 1; i 16; i++ )
33 btree[i] = 0;
34 createbtree(btree,data,9);
35 for(i = 1; i16; i++)
36 printf("%2d: [%d] \n",i,btree[i]);
37
38
39 return 0;
40 }
二叉树数组实现
标签:evel ret span lse return print class 开始 create
原文地址:https://www.cnblogs.com/hulianxingkong/p/13291293.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
二叉树数组实现
文章链接:http://soscw.com/index.php/essay/76478.html
评论