描述
阿伟在网吧玩一款叫做“逃离地下室”的密码游戏,游戏规则是这样的:

地下室有多层,编号为0,1,2,…,n(n<100)的房间分布在其中,所有房间都有1个下来的入口,最多有左右2个通往下一层房间的出口。
第一层只有一个房间,是阿伟的出发点,角色下来时的入口被电子密码锁锁住了。

游戏说明,往右边走将来会遇到的所有房间,都是往左走遇不到的,反过来也一样,在房间里的路径不会形成环。
阿伟离开地下室的密码,是所有没出口的房间编号的一个特殊排序,排序规则为:先输出距离地面近的房间号,距离相同时,先输出靠左侧的房间号。

密码正确阿伟就会回家,如果一直解不开,阿伟可能会因为没有网费,去陌生人杰哥的家里继续玩游戏。你是阿伟的好朋友阿斌,你不能很逊地看着朋友去陌生人家里,你决定写个代码帮他打开密码锁……

输入
第一行,为一个非负整数n,0≤n<100;
之后n+1行,代表从编号0开始的房间,对应的左右出口通往的房间号,若该方向无出口,则用 “*” 表示。

输出:
先输出距离地面近的房间号,距离相同时,先输出靠左侧的房间号。
密码不含任何空格!如房间为:5号 2号 0号,则“520”为密码。

样例输入

5
* *
5 *
* *
1 4
2 0
* *
样例输出
520
样例分析
思路:根据题目描述及样例可以看出这是一个二叉树的广度优先搜索的题,我们选择用静态链表建立二叉树并用队列实现广度优先搜索;

代码

#include<bits/stdc++.h>
using namespace std;typedef unsigned long long ull;
typedef long long ll;const ll maxx = 1e18;
const int N = 1e6+10;
const int p = 1e4;
const double eps = 1e-8;
//二叉树的层序遍历   //二叉树的建立 int n,root1;
string a;//用字符串处理 "*" 和 "100" 不同的情况
bool flag[1002]; //用来找树根 int con(string s)
{int sum=0,len=s.size();for(int i=0;i<len;i++){sum=sum*10+s[i]-'0';}return sum;
}//读入数字 struct Tree1{int Lchild1;//左孩子 int Rchild1;//右孩子 int num;
}tree1[1002],le; queue<Tree1>qu;//队列存结构体 int main()
{scanf("%d",&n);for(int i=0;i<=n;i++)//注意循环次数 {cin>>a; if(a=="*")tree1[i].Lchild1=-1;//用 -1 代表没有子节点 elsetree1[i].Lchild1=con(a);//左孩子 cin>>a;if(a=="*")tree1[i].Rchild1=-1;elsetree1[i].Rchild1=con(a);//右孩子 tree1[i].num=i;//标记好房间号 }//建立二叉树 for(int i=0;i<=n;i++){flag[tree1[i].Lchild1]=true;flag[tree1[i].Rchild1]=true;}for(int i=0;i<=n;i++){   if(flag[i]==0)root1=i;}//找树根,标记所有节点的子节点,没有被标记的唯一点即为树根 qu.push(tree1[root1]);//树根存入队列 while(!qu.empty()){le=qu.front();qu.pop();if(le.Lchild1==-1&&le.Rchild1==-1){printf("%d",le.num);//cout<<le.num; }//无子节点就输出 if(le.Lchild1!=-1){qu.push(tree1[le.Lchild1]);}if(le.Rchild1!=-1){qu.push(tree1[le.Rchild1]);}//有子节点优先在队尾存入左孩子,然后存入右孩子 }return 0;
}

(觉得写得不错就给个小小的赞吧)

列出叶节点 (二叉树的建立和BFS)相关推荐

  1. 列出叶节点 python

    7-10 列出叶结点 (10 分) 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 ...

  2. LeetCode 742. 二叉树最近的叶节点(建立父节点信息+BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个 每个结点的值互不相同 的二叉树,和一个目标值 k,找出树中与目标值 k 最近的叶结点. 这里,与叶结点 最近 表示在二叉树中到达该叶节点需要行进 ...

  3. 二叉树节点数据结构-练习 5 二叉树的建立 遍历

    PS:今天上午,非常郁闷,有很多简略基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 二叉树是数据结构的最主要的内容之一,之所以引入二叉树,是因为精良的数据结构非 ...

  4. 二叉树:叶节点的一些操作

    目录 1.求叶子节点之和 2.求叶子节点的父节点之和 3.求左叶子节点 leetcode404 4.层数最深叶子节点之和leetcode1302 5.层数最浅叶子节点之和 6.删除给定值的叶子节点le ...

  5. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  6. java计算二叉树的节点最小值_java计算二叉树的高度以及叶节点个数

    java实现二叉树的相关操作 代码如下 package 二叉树有关; import java.util.ArrayDeque; import java.util.Queue; public class ...

  7. 二叉树-求叶节点个数

    对任何一棵二叉树:度为0的结点数(即叶节点) = 度为2的节点数 + 1: 当二叉树的总个数为奇数时,此二叉树"无度为1"的结点 当二叉树的总个数为偶数时,此二叉树"只有 ...

  8. 求二叉树根节点到叶节点的所有路径

    257. 二叉树的所有路径 难度:简单 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径. 叶子节点 是指没有子节点的节点. 思路 使用迭代法,从根节点开始到叶节点 ...

  9. 二叉树根结点到叶节点的最短距离

    给定一棵二叉树,找出它的最小深度.最小深度是沿着从根节点到最近叶节点的最短路径的节点数目. 思路一:递归. 当节点左右子树都为null时,返回0 当左子树为null,返回右子树递归+1: 当右字数为n ...

最新文章

  1. 【转】不分主副卡!全网通5.0时代到来
  2. Entity Framework 学习笔记(1)
  3. lvm实现快速备份文件及数据库,lvm快照原理
  4. 记一次lwip中 遇到 pcb == pcb-next 的pcb死循环debug过程
  5. ESP8266/ESP32 NVS 基本操作
  6. 信息系统项目管理师-信息系统综合测试与管理核心知识思维脑图
  7. Implementation:Bellman-ford
  8. 一道内存分配的面试题
  9. Android(java)学习笔记51:ScrollView用法
  10. 路由器OSPF配置2
  11. 2D曲线插值拟合基础
  12. 计算机毕业设计基于asp.net企业差旅管理系统
  13. 视频教程-Visio应用视频教程(下)-Office/WPS
  14. 如何把google日历添加到桌面
  15. Python—基于百度AI的人脸识别检索程序(转自本人博客)
  16. Java项目:ssm学生学籍管理系统
  17. java soapui 发送xml_javawebservice 中用soapui发送请求由于出现异常错误, 无法创建 SOAP 消息: XML 读进程错误...
  18. 一款自适应的聊天网站-匿名在线聊天室PHP源码
  19. 安卓psp模拟器联机教程_侠盗猎车手:血战唐人街PSP版模拟器实测 有链接,有联机教程...
  20. 大数据小项目之电视收视率企业项目06

热门文章

  1. 视频压缩后大小没变怎么办?视频压缩后大小没变是为什么?
  2. 【window】解决word,excel,PowerPoint 等office图标不显示问题
  3. Web前端是什么?Web前端包括哪些技术?
  4. 域成员计算机加入域问题
  5. 「哮喘」,更精细和全面的认识
  6. 8招教你将内容营销与SEO完美合一
  7. python鲜花水果商城毕业设计开题报告
  8. php js sdk 签名算法,签名算法 · PAYJS API 开发文档
  9. 理财笔记 - 听说的老A的不断买入自家公司股票实现财务自由
  10. 客流量总是少?是你门店选址出了问题!