数据结构与算法 ~ 树和二叉树 ~ 使用数组存储二叉树

数据结构与算法 ~ 树和二叉树 ~ 使用数组存储二叉树

/* binary trees--sequence storage express */
#include<stdlib.h>
#include<stdio.h>
#define MAX 100
int length=1;

void create_bitree(int bitree[]){ 
 int flag,i,e;
 for(i=1;i<MAX;++i)   bitree[i]=0;     /*数组初始化*/
 printf("\n=======create the bitree============\n");
 while(1){
  printf("\nplease input the data(exit for 0):");
  scanf("%d",&e);
  if (e==0) break;
  flag=1;
/*寻找插入位置*/
  while (e!=0&&bitree[flag]!=0){ 
         if (bitree[flag]>e)  flag=flag*2;
         else  flag=flag*2+1;
       }/*while*/
  bitree[flag]=e;                       /*插入*/
  if (flag>length)  length=flag;
 }/*while*/
}/*create_bitree*/

void Print(int bitree[]){
 int i=1;
 printf("\n=======the current bitree============\n");
 for (i=1;i<=length;++i)
     printf("\nbitree[%d]=%d",i,bitree[i]);
 printf("\nthe length of bitree is %d",length);
 printf("\n=======over============\n");
}
 
int main(){
 int i ,data;
 int bitree[MAX];
 create_bitree(bitree);
 Print(bitree);
 system("pause");
 return 0;
}

运行结果:


=======create the bitree============

please input the data(exit for 0):54

please input the data(exit for 0):42

please input the data(exit for 0):11

please input the data(exit for 0):98

please input the data(exit for 0):65

please input the data(exit for 0):44

please input the data(exit for 0):55

please input the data(exit for 0):77

please input the data(exit for 0):1

please input the data(exit for 0):0

=======the current bitree============

bitree[1]=54
bitree[2]=42
bitree[3]=98
bitree[4]=11
bitree[5]=44
bitree[6]=65
bitree[7]=0
bitree[8]=1
bitree[9]=0
bitree[10]=0
bitree[11]=0
bitree[12]=55
bitree[13]=77
the length of bitree is 13
=======over============
请按任意键继续. . .

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值