69,377
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
#include "stdlib.h"
typedef struct bit{
int data;
struct bit *lch,*rch;
}bittree,*l;
void creat (l p)
{
int ch;
printf("Input data:\n");
scanf("%d",&ch);
if (ch == 0)
p = NULL;
else
{
p = (l)malloc(sizeof(bittree));
p->data = ch;
creat(p->lch);
creat(p->rch);
}
}
void exchange (l p)
{
l q;
q = p->lch;
p->lch = p->rch;
p->rch = q;
if(p->lch) exchange(p->lch);
if(p->rch) exchange(p->rch);
}
void print(l p)
{
if(p != NULL)
printf("%d",p->data);
if(p->lch) print(p->lch);
if(p->rch) print(p->rch);
}
void menu()
{
printf("1:creat \n");
printf("2:exchange\n");
printf("3:output \n");
printf("0:exit\n");
}
void main()
{
int i;
l p;
menu();
printf("what do you wanna to do?\n");
scanf("%d",&i);
while(i)
switch(i)
{
case 1:creat(p);break;
case 2:exchange(p);break;
case 3:print(p);break;
default:break;
}
}
void creat (l &p) //用个引用就OK
{
int ch;
printf("Input data:\n");
scanf("%d",&ch);
if (ch == 0)
p = NULL;
else
{
p = (l)malloc(sizeof(bittree));
p->data = ch;
creat(p->lch);
creat(p->rch);
}
}
void exchange (l &p)
{
l q;
q = p->lch;
p->lch = p->rch;
p->rch = q;
if(p->lch) exchange(p->lch);
if(p->rch) exchange(p->rch);
}