顺序存储的方式构造一颗排序树,但输出结果有误,不知如何下手
#include<stdio.h>
//
void createbtree(int *tree,int *data,int len)
{
int i;
int number;
tree[1]=data[0];
for(i=1;i<len;i++)
{
number=1;
while(tree[number]!=0)
{
if(data[i]>tree[number])
{
number=2*number+1;
}
if(data[i]<tree[number])
{
number=2*number;
}
}
tree[number]=data[i];
}
}
//printf
void printf_btree(int *tree)
{
int i;
for(i=1;i<34;i++)
{
printf("%2d%8d\n",i,tree[i]);
}
}
int main()
{
int data[10]={6,5,9,4,7,3,2,8,1};
int tree[34]={0};
int len=10;
createbtree(tree,data,len);
printf_btree(tree);
return 0;
}