数据结构 笔记:树中属性操作的实现

本文介绍了树数据结构中关键的统计与度量方法,包括结点数目、树的高度及树的度数计算。通过递归算法实现,适用于计算机科学与数据结构课程的学习。

树中结点的数目

-定义功能:count(node)

·在node为根结点的树中统计结点的数目

int count(GTreeNode<T>* node) const
    {
        int ret = 0;

        if(node != NULL)
        {
            ret = 1;

            for(node->child.move(0);!node->child.end();node->child.next())
            {
                ret += count(node->child.current());
            }
        }

        return ret;
    }

树的高度

-定义功能:height(node)

·获取node为根结点的树的高度

int height(GTreeNode<T>* node) const
    {
        int ret = 0;
        if(node != NULL)
        {
            for(node->child.move(0);!node->child.end();node->child.next())
            {
                int h = height(node->child.current());

                if(ret < h)
                {
                    ret = h;
                }
            }

            ret = ret + 1;
        }

        return ret;
    }

树的度数

-定义功能:degree(node)

·获取node为根结点的树的度数

int degree(GTreeNode<T>* node) const
    {
        int ret = 0;

        if(node != NULL)
        {
            ret = node->child.length();

            for(node->child.move(0);!node->child.end();node->child.next())
            {
                int d =degree(node->child.current());

                if(ret < d)
                {
                    ret = d;
                }

            }
        }
        return ret;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值