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

树中结点的数目

-定义功能: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;
    }

猜你喜欢

转载自blog.csdn.net/qq_29962483/article/details/84025985