二叉树数组实现

Posted hulianxingkong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树数组实现相关的知识,希望对你有一定的参考价值。

 1 #include <stdio.h>
 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 <= len; 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; i< 16; i++)
36     printf("%2d: [%d] 
",i,btree[i]);
37     
38 
39     return 0;
40 }

 

以上是关于二叉树数组实现的主要内容,如果未能解决你的问题,请参考以下文章

超强二叉树解析.必收藏!(数组,链表实现,8种遍历方法,前,中,后序线索化二叉树及其遍历)---风之java

基于二叉树和数组实现限制长度的最优Huffman编码

树结构的基础部分

二叉树的遍历--递归实现与非递归实现

二叉树实现(根据层级数组生成二叉树)

二叉树实现(根据层级数组生成二叉树)