두 갈래 정렬 트 리 구축 (비 귀속)
1269 단어 데이터 구조
코드 는 다음 과 같 습 니 다:
#include
#include
#include
#include
#include
#include
using namespace std;
typedef struct Node{
int data;
Node *l,*r;
}Node,*pre;
void travel(pre T)
{
if(T)
{
travel(T->l);
printf("%3d",T->data);
travel(T->r);
}
}
void travel1(pre T)
{
if(T)
{
travel1(T->r);
printf("%3d",T->data);
travel1(T->l);
}
}
void creat_tree(pre &T)
{
int n,e;
int flag;
printf("
");
scanf("%d",&n);
printf(" %d
",n);
scanf("%d",&e);
T->data=e;
n--;
Node *p;
Node *q;
while(n--)
{
scanf("%d",&e);
p=T;
while(p)
{
if(e>p->data)
{
q=p;
p=p->r;
flag=0;
}
else if(edata)
{
q=p;
p=p->l;
flag=1;
}
}
p=new Node;
p->data=e;
p->l=p->r=NULL;
if(flag)
q->l=p;
else
q->r=p;
}
}
int main()
{
pre T;
T=new Node;
T->l=T->r=NULL;
creat_tree(T);
travel(T); //
printf("
");
travel1(T); //
return 0;
}