有些忘记了
View Code
1 #include2 #include 3 typedef struct tree 4 { 5 struct tree *l,*r; 6 int data; 7 }tt; 8 int k; 9 void creat(tt *head,int a)10 {11 tt *p;12 p = (tt *)malloc(sizeof(tt));13 p->data = a;14 if(head->data>a)//比它小往左走15 {16 if(head->l == NULL)17 {18 head->l = p;19 p->l = NULL;20 p->r = NULL;21 }22 else23 creat(head->l,p->data);24 }25 else //否则往右走26 {27 if(head->r == NULL)28 {29 head->r = p;30 p->l = NULL;31 p->r = NULL;32 }33 else34 creat(head->r,p->data);35 }36 }37 void inorder(tt *head)//中序遍历38 {39 if(head!=NULL)40 { 41 inorder(head->l);42 if(k!=0)43 printf(" ");44 printf("%d",head->data);45 k++;46 inorder(head->r);47 }48 }49 int main()50 {51 int n,i,j,a;52 tt *head;53 head = (tt *)malloc(sizeof(tt));54 while(scanf("%d",&n)!=EOF)55 {56 k = 0;57 for(i = 1 ;i <= n ; i++)58 {59 scanf("%d",&a);60 if(i == 1)//根节点61 {62 head->data = a;63 head->l = NULL;64 head->r = NULL;65 }66 else67 creat(head,a);//插入68 }69 inorder(head);70 printf("\n");71 }72 return 0;73 }