结训赛第一次复习:二叉树的基本操作(二)

二叉树的层序遍历:

http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2711/pid/3344

这道题需要联系前面的:栈和队列

节约时间只输出函数

void cengxu(struct tree*root)
{
    int in,out;
    struct tree*temp[55];
    in=0;
    out=0;
    temp[in]=root;
    if(in>out)
    {
        if(temp[out])//保证输出有数,注意不要用in,因为如果in在NULL停,那么剩下的out++就没来
        {
            printf("%c",temp[out]->data);
            temp[in++]=temp[out]->l;//左儿子进
            temp[in++]=temp[out]->r;//右儿子进
        }
        out++;
    }
}

让我们手动debug,还是建一个最简单的树abc,因为这书结构体指针数组,首先储存树根,在保证in>out情况下,把a输出,然后在把左右孩子放进队列,接下来同理

统计叶子数,就是统计最下面的孩子(他下面左右孩子都为空)

参考大佬文章:https://blog.csdn.net/zhangkongzhongyun/article/details/38037059

http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2711/pid/3342

void searchleaf(struct node*root)
{
    if(root)
    {
        if(root->l==NULL&&root->r=NULL)
        {
            count++;
        }
        searchleaf(root->l);
        searchleaf(root->r);
    }
    return count;
}

手动debug:建一个abc树,首先searchleaf(root->l)->然后因为b下面是NULL所以count++,然后直接search(root->r),发现下面是NULL所以说count加俩次,同理其他更复杂的树也是同理

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值