该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define NULL0/*定义NULL符号值为0*/
#define COUNT10/*对10个数字进行排序*/
typedef struct tree{
int number;
struct tree *left,*right;
}Tree2;/*定义二叉树类型名*/
int insert_number(Tree2 **,int);/*向二叉树中插入一个整数*/
int free_tree(Tree2 *);/*释放二叉树所占用的内存空间*/
int type_tree(Tree2 *);/*对二叉树进行前序遍历并打印结果*/
int main(){
Tree2 *head=NULL;/*向内存申请一个二叉树的头节点*/
int i,temp;
for(i=0;i
printf("Input a number%d:",i+1);
scanf("%d",&temp);
insert_number(&head,temp);
}
printf("Ordered:");
type_tree(head);/*打印前序遍历结果*/
free_tree(head);/*释放二叉树*/
getch();
return(0);
}
int insert_number(Tree2 **phd,int n){/*利用递归向二叉树中插入整数*/
if(!*phd){
if(!(*phd=(Tree2 *)malloc(sizeof(Tree2))))printf("Not enough memory."),exit(1);
(*phd)->left=(*phd)->right=NULL;
(*phd)->number=n;
return(0);
}else{
if(n<=(*phd)->number)insert_number(&(*phd)->left,n);
else insert_number(&(*phd)->right,n);
}
}
int type_tree(Tree2 *hd){/*利用递归对二叉树进行前序遍历*/
if(hd->left)type_tree(hd->left);
printf(" %d",hd->number);
if(hd->right)type_tree(hd->right);
return(0);
}
int free_tree(Tree2 *hd){/*利用递归释放二叉树*/
if(hd->left)free_tree(hd->left);
if(hd->right)free_tree(hd->right);
free(hd);
return(0);
}
==================
C友QQ:396148102