| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 906 人关注过本帖
标题:一棵树的问题~~
只看楼主 加入收藏
leojack001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-16
收藏
 问题点数:0 回复次数:5 
一棵树的问题~~
如何确定一棵二叉树的某个结点的层次?子孙的个数?
搜索更多相关主题的帖子: 二叉树 二叉树 如何 如何 
2008-11-16 15:34
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
递归下来,每个结点多增加两个变量(深度、子结点数)

倚天照海花无数,流水高山心自知。
2008-11-16 15:42
leojack001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-16
收藏
得分:0 
回复 2# 的帖子
具体点可以嘛??
2008-11-16 18:52
xiao_ou0725
Rank: 2
来 自:江苏苏州
等 级:论坛游民
帖 子:59
专家分:20
注 册:2008-10-24
收藏
得分:0 
log2(n)取整得到的就是深度  子孙的个数看你的题目而定了  不过二叉树的性质是很有用的  建议你记记
2008-11-16 19:37
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
这是我的BinaryTree<T>类代码里的一个递归成员函数,
求指定结点在指定子树中的深度,你在调用时把subTree
改成root,就是求你所说的第一个问题了.
//////////////////////////////////////////////////
//Depth()私有成员
//计算指定结点p在子树subTree中的深度
//////////////////////////////////////////////////
template<class T>
int BinaryTree<T>::Depth(BinTreeNode<T>* p
            ,BinTreeNode<T>* subTree)
{
    //如果子树不空
    if(subTree!=NULL)
    {
        //如果就是根结点则深度为1
        if(p==subTree)
            return 1;
        else
        {
            //递归求p在左子树里的深度
            int ld=Depth(p,subTree->leftChild);
            //递归求p在右子树里的深度
            int rd=Depth(p,subTree->rightChild);
            if(ld!=0)
                //左子树深度加1
                return 1+ld;
            else if(rd!=0)
                //右子树深度加1
                return 1+rd;
            else
                //没有找到则返回0
                return 0;
        }
    }
    else
        //空则深度为0
        return 0;
};
///////////////////////////////////Depth()函数结束

[[it] 本帖最后由 geninsf009 于 2008-11-16 20:56 编辑 [/it]]
2008-11-16 20:53
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
你说的第二个问题实质可以转化成求左子树结点数+右子树结点数之和,
或者求出子树总结点数减1就可以了.
2008-11-16 21:06
快速回复:一棵树的问题~~
数据加载中...
 
   



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

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