⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitree.cpp

📁 交换二叉数的左右孩子,如果只有一个孩子则把它移到另一边
💻 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 + -