美文网首页
输出二叉树的叶子结点和非叶子结点算法及实现

输出二叉树的叶子结点和非叶子结点算法及实现

作者: 周末的游戏之旅 | 来源:发表于2019-08-03 10:38 被阅读0次

输出二叉树的叶子结点

输出二叉树中的叶子节点并无次序要求,因此可以用三种遍历顺序中的任何一种。只是比普通的遍历多了一个条件判断。
判断是否为叶子结点:node.lchrild==null && node.rchrild==null

算法描述

static void PreOrder(TreeNode<string> node)
{
    if (node != null)
    {
        if(node.LChrild1==null&&node.RChirld1==null)
            Console.WriteLine(node.Data);
        PreOrder(node.LChrild1);
        PreOrder(node.RChirld1);
    }
}

输出二叉树的非叶子结点

和输出叶子结点类似,只是把判断条件换一下。
判断是否为非叶子结点:node.lchrild!=null || node.rchrild!=null

算法描述

static void NotPreOrder(TreeNode<string> node)
{
    if (node != null)
    {
        if (node.LChrild1 != null || node.RChirld1 != null)
        {
            Console.WriteLine(node.Data);
        }
        NotPreOrder(node.LChrild1);
        NotPreOrder(node.RChirld1);
    }
}

相关文章

  • 统计二叉树叶子结点的数目

    算法分析 统计叶子结点数目和输出叶子结点类似,不过是把输出换成累加。设计一个全局变量即可。 算法实现 TreeNo...

  • 输出二叉树的叶子结点和非叶子结点算法及实现

    输出二叉树的叶子结点 输出二叉树中的叶子节点并无次序要求,因此可以用三种遍历顺序中的任何一种。只是比普通的遍历多了...

  • 哈夫曼编码(Java)

    Huffman编码算法实际上是一个贪心算法 每个字符都是二叉树的叶子结点,非叶子结点则不代表任何字符 有一组字符集...

  • 遍历二叉树的应用

    1.输出二叉树的叶子结点 这里,我们首先需要明白叶子结点的定义:左右子树是否都为空,接下来,用代码来实现就变得简单...

  • 4.4 哈夫曼树和哈夫曼编码

    1.带权路径长度(WPL): 设二叉树有n个叶子结点,每个叶子结点带有权值 wk,从根结点到每个叶子结点的长度为 ...

  • 数据结构笔记(树->哈夫曼树)

    带权路径长度(WPL):设二叉树有N个叶子结点,每个叶子结点带有权值Wk,从根节点到每个叶子结点的长度为lk,则每...

  • 面试题

    近期算法题记录 始于2021.08.05 一、字节跳动 算法题:二叉树,根结点到每个叶子结点的值算一个数,所有的值...

  • 堆 | 定义、操作、堆排序

    参考:胡凡,曾磊《算法笔记》 定义 堆是一棵完全二叉树。 完全二叉树:结点数量n,叶子结点数ceiling(n/2...

  • 二叉树-完全二叉树

    所有结点度为0或2满二叉树 所有结点度为0或2 且叶子节点都在最后一层 叶子结点只会出现在最后两层,且最后一层叶子...

  • 二叉树

    节点的度 结点拥有的子树数称为结点的度。度为0的结点称为叶子结点或终端结点,度不为0的结点称为非终端结点或分支结点...

网友评论

      本文标题:输出二叉树的叶子结点和非叶子结点算法及实现

      本文链接:https://www.haomeiwen.com/subject/jstjdctx.html