| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:二叉树怎么递归建立???
只看楼主 加入收藏
double聪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:118
注 册:2011-11-19
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:8 
二叉树怎么递归建立???
书上看到的二叉数建立是递归创建左子,再递归右子。

可我现在的树     2
              1    4
           3  0   5  7
        9  6
 输入为 2 1 4 3 0 5 7 9 6 -1;
 0表示没该节点,-1 表示输入结束。
怎样用递归建立上述二叉数。。。。
搜索更多相关主题的帖子: 二叉树 
2012-04-09 19:42
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:3 
你可以先把所有的结点先保存在一个数组里,然后按照下面的寻址公式建立左右结点:下标为i的左儿子是i*2,右儿子是i*2+1

酱油实习生
2012-04-09 21:17
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:3 
递规建树,只能二叉有序的树吧!
建树用数组挺手工的!要把补成完全二叉树,再按子结点和父接点的关系来线性存放!
望大牛说说树的一些东西,小弟没有怎么研究树,没有怎么实际中用到过!

用心做一件事情就这么简单
2012-04-10 09:34
double聪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:118
注 册:2011-11-19
收藏
得分:0 
回复 2楼 墨清扬
那遇到0呢?
2012-04-10 12:55
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 4楼 double聪
那就直接返回呗,但是对后面的建立有影响

酱油实习生
2012-04-10 18:41
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:3 
C语言丢得太久了,好多东西想不起来了,经常玩玩算法,还是挺有意思的!
最近忙,以后闲下来可以再玩玩!

做自己喜欢的事!
2012-04-10 21:12
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
通过已经存在的树来建树,感觉几乎都挺手工的。
树主要是遍历,
通过遍历来进行其他的处理

用心做一件事情就这么简单
2012-04-11 00:15
绿茶盖儿
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:363
专家分:1852
注 册:2011-9-3
收藏
得分:3 
程序代码:
BiTree CreateBiTree(BiTree T)
{ // 按先序次序输入二叉树中结点的值(假设为int类型)
  //构造二叉链表表示的二叉树T,结点值为int型,0表示空(子)树
    int num;
    scanf("%d",&num);
    if(0 == num) //
        T=NULL;
    else
    {
        T=(BiTree)malloc(sizeof(BiTNode));
        if(!T)
            exit(0);
        T->data = num; // 生成根结点
        printf("请输入结点%d的左子结点: ",T->data);
        T->lchild = CreateBiTree(T->lchild); // 构造左子树
        printf("请输入结点%d的右子结点: ",T->data);
        T->rchild = CreateBiTree(T->rchild); // 构造右子树
   }
    return T;
}

2012-04-11 21:42
绿茶盖儿
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:363
专家分:1852
注 册:2011-9-3
收藏
得分:0 
回复 8楼 绿茶盖儿
额,不好意思,只看了lz的标题,没看lz的内容
2012-04-11 22:02
快速回复:二叉树怎么递归建立???
数据加载中...
 
   



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

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