ACM乐园
Love Me,Love My Code!
posts - 53,  comments - 24,  trackbacks - 0
http://ac.jobdu.com/problem.php?id=1201

二叉查找树的建立和遍历,好久没写代码了,练习华科上机题。这道题调试了半个小时,真心生疏咯。。
//二叉查找树的建立和遍历,纯C代码
#include <stdio.h>
#include 
<stdlib.h>

typedef 
struct node
{
    
int data;
    
struct node* lchild;
    
struct node* rchild;
}
*BSTree;

int n,t;

void Insert(BSTree root,int a)
{
    BSTree p,q,f;
    p
=root;
    q
=(BSTree)malloc(sizeof(struct node));
    q
->data=a;
    q
->lchild=q->rchild=NULL;
    
while(p)
    
{
        f
=p;
        
if(p->data==a)
        
{
            t
++;
            
return ;
        }

        
if(p->data>a)
            p
=p->lchild;
        
else
            p
=p->rchild;
    }

    
if(f->data>a)
        f
->lchild=q;
    
else
        f
->rchild=q;
    
    
//free(q);
}


void Create(BSTree root)
{
    
int a,i;
    scanf(
"%d",&a);
    root
->data=a;
    root
->lchild=root->rchild=NULL;
    
for(i=1;i<n;i++)
    
{
        scanf(
"%d",&a);
        Insert(root,a);
    }

}


void InOrder(BSTree root)
{
    
if(root==NULL)
        
return;
    InOrder(root
->lchild);
    printf(
"%d ",root->data);
    InOrder(root
->rchild);
}


void PreOrder(BSTree root)
{
    
if(root==NULL)
        
return;
    printf(
"%d ",root->data);
    PreOrder(root
->lchild);
    PreOrder(root
->rchild);
}


void PostOrder(BSTree root)
{
    
if(root==NULL)
        
return;
    PostOrder(root
->lchild);
    PostOrder(root
->rchild);
    printf(
"%d ",root->data);    
}


int main()
{
    BSTree root
=(BSTree)malloc(sizeof(struct node));
    
while(scanf("%d",&n)!=EOF)
    
{
        t
=0;
        Create(root);
        PreOrder(root);
        printf(
"\n");
        InOrder(root);
        printf(
"\n");
        PostOrder(root);
        printf(
"\n");
    }

    free(root);
    
return 0;
}


posted on 2012-03-17 21:57 大大木马 阅读(108) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(1)

随笔档案(53)

文章档案(2)

搜索

  •  

积分与排名

  • 积分 - 63786
  • 排名 - 351

最新评论

阅读排行榜

评论排行榜