二叉树数组实现

2021-04-19 03:27

阅读:348

标签: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


评论


亲,登录后才可以留言!