排序二叉樹

#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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章