#include
#include
#include
typedef int Elemtype;
typedef struct Bitnode
{Elemtype data;//数据域//
struct Bitnode *lchild,*rchild;//左右指针域//
}Bitnode,*Bitree;
//建立二叉树//
int CreatBitree(Bitree T )
{Elemtype ch,temp;
scanf("%d",&ch);
if(ch==-1)
T=NULL;
else
{
T=(Bitree)malloc(sizeof(Bitnode));
T->data=ch;
printf("输入%d的左子树:",ch);
CreatBitree(T->lchild);
printf("输入%d的右子树:",ch);
CreatBitree (T->rchild);}
return 1;
}
//先序遍历二叉树//
void preorder(Bitree T )
{if(T!=NULL) printf("%d ",T->data);
preorder(T->lchild );
preorder(T->rchild );
}
//交换二叉树左右节点//
int jiaohuan(Bitree &T)
{
Bitree k;
if(T==NULL) return 0;
else while(T->lchild!=NULL||T->rchild!=NULL)
{
k=T->lchild;
T->lchild=T->rchild;
T->rchild=k;
}jiaohuan(T->lchild);
jiaohuan(T->rchild);
printf("hjkd");
}
//输出二叉树//
int shuchu(Bitree T)
{if(T==NULL) return 0;
else printf("%d",T->data);
shuchu(T->lchild);
shuchu(T->rchild);
}
int main(void)
{
int num=0;
Bitree T=(Bitree)malloc(sizeof(Bitree));
printf("输入根节点色数,-1时为空姐点:");
CreatBitree(*T);
preorder(*T);
jiaohuan(*T);
shuchu(*T);
return 0;
}