| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:大家帮忙看下这个.
只看楼主 加入收藏
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
结帖率:96.3%
收藏
已结贴  问题点数:50 回复次数:9 
大家帮忙看下这个.
#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct node
{
    int key;
    struct node *lchild, *rchild;
}bstnode;
 
void inorder(bstnode *t)        //中序遍历二叉树,所得为排序结果.
{
    if(t!=NULL)
    {
        inorder(t->lchild);
        printf("%4d",t->key);
        inorder(t->rchild);
    }
}

bstnode * insertbst(bstnode *t,bstnode *s)        //将待插入结点*s插入到二叉树排序树
{
    bstnode *f,*p;
    p=t;
    while(p!=NULL)
    {
        f=p;
        if(s->key==p->key)
            return t;
        if(s->key<p->key)
            p=p->lchild;
        else
            p=p->rchild;
    }
    if(t==NULL)
        return s;
    if(s->key<f->key)
        f->lchild=s;
    else
        f->rchild=s;
    return t;
}


bstnode * creatord()            //建立二叉排序树
{
    bstnode *t,*s;
    int key;
    t=NULL;
    printf("依次输入各记录的key,完毕请输入0:\n");
    scanf("%d",&key);
    while(key!=0);
    {
        s=(bstnode *)malloc(sizeof(bstnode));
        s->key=key;
        s->lchild=NULL;
        s->rchild=NULL;
        t=insertbst(t,s);
        scanf("%d",&key);
    }
    return t;
}

main()
{
    bstnode *root;
    root=creatord();
    printf("排序结果:\n");
    inorder(root);
    getchar();
}


输入后怎么不出来结果呀?
收到的鲜花
  • Devil_W2010-12-26 15:39 送鲜花  -3朵   附言:我还以为,你有货的。。
搜索更多相关主题的帖子: 二叉树 
2010-12-26 14:04
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:3 
6当家
2010-12-26 14:16
freedgun
Rank: 5Rank: 5
等 级:职业侠客
帖 子:147
专家分:302
注 册:2010-11-11
收藏
得分:3 
等高手来

有什么样的付出,就有什么样的收获!!
2010-12-26 15:16
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:44 
没输入怎么输出啊,scanf只输入一次就跑程序了

Go Go Go
2010-12-26 15:16
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
创建树的时候,while后面多一个;号

Go Go Go
2010-12-26 15:33
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
程序:
程序代码:
#include<stdio.h>
#include<stdlib.h>
//#define NULL 0
typedef struct node
{
    int key;
    struct node *lchild, *rchild;
}bstnode;

void inorder(bstnode *t)        //中序遍历二叉树,所得为排序结果.
{
    if(t!=NULL)
    {
        inorder(t->lchild);
        printf("%4d",t->key);
        inorder(t->rchild);
    }
}

bstnode * insertbst(bstnode *t,bstnode *s)        //将待插入结点*s插入到二叉树排序树
{
    bstnode *f,*p;
    p=t;
//    printf("eeeeeee");
    while(p!=NULL)
    {
        f=p;
        if(s->key==p->key)
            return t;
        if(s->key<p->key)
            p=p->lchild;
        else
            p=p->rchild;
    }
    if(t==NULL)
        return s;
    if(s->key<f->key)
        f->lchild=s;
    else
        f->rchild=s;
    return t;
}


bstnode * creatord()            //建立二叉排序树
{
    bstnode *t,*s;
    int key;
    t=NULL;
    printf("依次输入各记录的key,完毕请输入0:\n");
    scanf("%d",&key);
    while(key!=0)//你的这个后面多以个分号,造成只能输入一次***********************************
    {
        s=(bstnode *)malloc(sizeof(bstnode));
        s->key=key;
        s->lchild=NULL;
        s->rchild=NULL;
        t=insertbst(t,s);
        scanf("%d",&key);
    }
    return t;
}
bstnode* intin(bstnode *root)
{
    root=(bstnode *)malloc(sizeof(bstnode));
    root->key = 0;
    root->lchild =NULL;
    root->rchild =NULL;
    return root;

}

main()
{
    bstnode *root;
    root=creatord();
    printf("排序结果:\n");
    inorder(root);
    getchar();
}

结果:
图片附件: 游客没有浏览图片的权限,请 登录注册


Go Go Go
2010-12-26 15:38
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
汗,粗心是大敌呀.

经验积累中............
2010-12-26 15:56
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
  抢我的台词

粗心是大敌
2010-12-26 16:04
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
曾经一度被这个东西困扰,现在咱不再纠结了,
已经远离递归了。

我就是真命天子,顺我者生,逆我者死!
2010-12-26 18:43
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
我发现自己思维有问题, 别人一下就理解了,
我怎么花了那么长时间,才学了个皮毛? 这是为什么呀? 不解
难道是传说中的菜鸟...?

我就是真命天子,顺我者生,逆我者死!
2010-12-26 18:59
快速回复:大家帮忙看下这个.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032503 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved