📄 bitree.cpp
字号:
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}JD;
JD* CreateBitree(JD *bt)
{
char ch;
printf("ch=");
scanf("%c",&ch);
getchar();
if(ch==' ') bt=NULL;
else
{
bt=(JD *)malloc(sizeof (JD));
printf("左孩子:");
bt->lchild=CreateBitree(bt->lchild);
bt->data=ch;
printf("右孩子:");
bt->rchild=CreateBitree(bt->rchild);
}
return(bt);
}
void PostOrder(JD *root)
{
JD *p;
p=root;
if(p!=NULL)
{
PostOrder(p->lchild);
cout<<p->data<<" ";
PostOrder(p->rchild);
}
}
void ChangeTree(JD* root)
{
JD* p;
p=root;
if(p->lchild!=NULL&&p->rchild!=NULL)
{
JD* q;
q=p->lchild;
p->lchild=p->rchild;
p->rchild=q;
}
else if(p->lchild!=NULL&&p->rchild==NULL)
{
JD* q1=(JD *)malloc(sizeof (JD));
p->rchild=q1;
p->rchild=p->lchild;
p->lchild=NULL;
}
else if(p->lchild==NULL&&p->rchild!=NULL)
{
JD* q2=(JD *)malloc(sizeof (JD));
p->lchild=q2;
p->lchild=p->rchild;
p->rchild=NULL;
}
}
void XChange(JD* root)
{
JD* p=root;
if(p!=NULL)
{
ChangeTree(p);
XChange(p->lchild);
XChange(p->rchild);
}
}
void main()
{
JD* head=NULL;
head=CreateBitree(head);
JD* q=head;
PostOrder(head);
XChange(q);
cout<<endl;
PostOrder(q);
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -