您的位置:首页 > 其它

排序二叉树

2015-10-10 17:18 309 查看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct node
{
	int data;
	node *lc;
	node *rc;
};
node* insert(node *p,int a)
{
	if(p==NULL)
	{
		p=(node*)malloc(sizeof(node));
		p->data=a;
		p->lc=NULL;
		p->rc=NULL;
	}
	else
	{
		if(a>p->data)
			p->rc=insert(p->rc,a);
		else
			p->lc=insert(p->lc,a);
	}
	return p;
}
void midput(node* p)
{
	if(p!=NULL)
	{
		midput(p->lc);
		printf("%d ",p->data);
		midput(p->rc);
	}
}
int main()
{
	node* p;
	int val,n;
	while(scanf("%d",&n)!=EOF)
	{
		p=NULL;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&val);
			p=insert(p,val);
		}
		midput(p);
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: