#include<stdio.h>
#include<stdlib.h>
void btree_create(int* btree,int* data, int length) {
int i, level;
for (i = 1; i < length;i++) {
for (level = 1; btree[level] != 0;) {
if (data[i] > btree[level]) {
level = 2*level + 1;
}
else {
level *= 2;
}
}
btree[level] = data[i];
}
}
int main() {
int data[] = {0,6,3,5,4,7,8,9,2};
int i, length = sizeof(data)/sizeof(int);
int btree[16] = { 0 };
printf("原始数组内容 : \n");
for (i = 0; i < length;i++ ) {
printf("[%2d]",data[i]);
}
btree_create(btree,data,length);
printf("二叉树内容 :\n");
for (i = 1; i < 16;i++) {
printf("[%2d]",btree[i]);
}
printf("\n");
return 0;
}
//例如7=3*2+1