标签:
// iOS学习交流群:230644538 #include <stdio.h> #define MAX 30 /****-----------------------------------------*****/ //函数名: CreateTree(int btree[], int list[], int n) //参数: (传入)int btree[] 二叉树 // (传入)int list[] 数据数组 // (传入)int n 数据数量 //功能: 建立二叉树 /****-----------------------------------------*****/ void CreateTree(int *bt, int list[], int n) { int i; int level; for(i = 0; i < MAX; i++) { bt[i] = 0; } bt[0] = list[0]; //建立二叉树根结点 for(i = 1; i < n; i++) { level = 1; //从第一层开始建立 while(bt[level] != 0) { //判断是否有子树存在 if(list[i] < bt[level]) //建立左子树 level = level*2; else level = level*2+1; //建立右子树 } bt[level] = list[i]; } } /**********************测试主程序***************************/ int main() { int count, i; int btree[MAX]; int nodelist[MAX]; printf("input the number of elements(n < 50):\n"); scanf("%d", &count); printf("input elements:\n"); for(i = 0; i < count; i++) { scanf("%d", &nodelist[i]); } CreateTree(btree, nodelist, count); printf("the binary tree is:\n"); for(i = 0; i < MAX; i++) { printf("%d ", btree[i]); } printf("\n"); return 0; }
标签:
原文地址:http://blog.csdn.net/bao_libra/article/details/46042905