当前位置: 首页 > wzjs >正文

做游戏网站多钱湖北标书设计制作

做游戏网站多钱,湖北标书设计制作,做视频网站赚钱吗,建行的官方网站文章目录 题目输入格式输出格式输入样例输出样例 题解解题思路完整代码 编程练习题目集目录 题目 Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. 输入格式 Each input file contains one test case. For each case, …

文章目录

  • 题目
    • 输入格式
    • 输出格式
    • 输入样例
    • 输出样例
  • 题解
    • 解题思路
    • 完整代码

编程练习题目集目录

题目

  Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.

输入格式

  Each input file contains one test case. For each case, the first line gives a positive integer N ( ≤ 10 ) N (≤10) N(10) which is the total number of nodes in the tree − − -- and hence the nodes are numbered from 0 0 0 to N − 1 N−1 N1. Then N N N lines follow, each corresponds to a node, and gives the indices of the left and right children of the node. If the child does not exist, a " − " "-" "" will be put at the position. Any pair of children are separated by a space.

输出格式

  For each test case, print in one line all the leaves’ indices in the order of top down, and left to right. There must be exactly one space between any adjacent numbers, and no extra space at the end of the line.

输入样例

8
1 -
- -
0 -
2 7
- -
- -
5 -
4 6

输出样例

4 1 5

题解

解题思路

在这里插入图片描述
  找到树的根结点,根据树的根结点以及其它一系列结点构建树,按照从上到下,从左到右的顺序(层次遍历)输出这棵树的叶子结点。

完整代码

#include <iostream>         // 包含标准输入输出流库
#include <queue>            // 包含队列数据结构库using namespace std;        // 使用标准命名空间#define MaxN  10            // 定义最大节点数量// 定义二叉树节点结构
struct TreeNode
{int Data;           // 节点存储的数据int Left;           // 左子节点的索引,若无左子节点则为-2int Right;          // 右子节点的索引,若无右子节点则为-2
} TN[MaxN];             // TN[]为全局变量,存储所有节点信息,最多MaxN个节点int buildTree(TreeNode T[], int n);         // 构建二叉树,并返回根节点索引
void Traversal(int root);                   // 层序遍历二叉树,并输出叶节点值int main(void)
{int N, root;                            // N表示树的节点数量,root表示根节点索引cin >> N;root = buildTree(TN, N);                // 构建树并获取根节点索引Traversal(root);                        // 层序遍历并输出叶节点值return 0;
}// 构建二叉树
int buildTree(TreeNode T[], int n)
{int i, check[MaxN];                  // 检查数组,用于标记是否为子节点char left, right;                    // 用于存储左右子节点的输入字符if (n == 0) {                        // 如果节点数量为0,返回-2表示空树return -2;}for (i = 0; i < n; i++) {           // 初始化所有节点,初始时假设所有节点都不是子节点check[i] = -1;                  // -1表示非子节点TN[i].Data = i;                 // 每个节点的编号即为自己的数据}for (i = 0; i < n; i++) {           // 根据输入构建树cin >> left >> right;           // 输入当前节点的左右子节点信息if (left != '-') {                  // 如果有左子节点T[i].Left = left - '0';         // 将字符转换为索引check[T[i].Left] = 1;           // 标记左子节点对应的索引为子节点}else {T[i].Left = -2;                 // 表示无左子节点}if (right != '-') {                 // 如果有右子节点T[i].Right = right - '0';       // 将字符转换为索引check[T[i].Right] = 1;          // 标记右子节点对应的索引为子节点}else {T[i].Right = -2;                // 表示无右子节点}}// 查找根节点(未被标记为子节点的节点)for (i = 0; i < n; i++) {if (check[i] == -1) break;          // 找到根节点}return i;                               // 返回根节点索引
}
// 层序遍历二叉树并输出叶节点值
void Traversal(int root)
{queue<struct TreeNode> Q;               // 定义一个队列用于层序遍历struct TreeNode T;                      // 临时存储队列中的节点if (root == -2) {                       // 如果根节点不存在,直接返回return;}Q.push(TN[root]);                       // 将根节点入队int flag = 0;                           // 标志变量,用于控制输出格式while (!Q.empty()) {                    // 当队列非空时T = Q.front();                      // 取出队列头部节点Q.pop();                            // 出队if (T.Left == -2 && T.Right == -2) {        // 如果当前节点是叶节点if (flag == 1) cout << " ";             // 如果不是第一个叶节点,输出空格else flag = 1;                          // 标记已经输出过叶节点printf("%d", T.Data);             // 输出叶节点的值}if (T.Left != -2) {Q.push(TN[T.Left]);                     // 如果有左子节点,将左子节点入队}if (T.Right != -2) {                        // 如果有右子节点,将右子节点入队Q.push(TN[T.Right]);}}
}

文章转载自:

http://CalQUhhB.mjxgs.cn
http://Mwn1kDfC.mjxgs.cn
http://G1JBNRTp.mjxgs.cn
http://lJAQWaM9.mjxgs.cn
http://sEzrNN55.mjxgs.cn
http://MPzQdhup.mjxgs.cn
http://WrN9SbTX.mjxgs.cn
http://jRvfRVPK.mjxgs.cn
http://DMP6W9Iv.mjxgs.cn
http://zwFRjZAB.mjxgs.cn
http://rqVuVY7k.mjxgs.cn
http://b8OULFin.mjxgs.cn
http://LErDA7sa.mjxgs.cn
http://mrqaC6wm.mjxgs.cn
http://o3nOJW7d.mjxgs.cn
http://g3qmT4nO.mjxgs.cn
http://O846hdbP.mjxgs.cn
http://3ilA6nzt.mjxgs.cn
http://RUb9E1cD.mjxgs.cn
http://awZ08gOl.mjxgs.cn
http://Jf7HopFB.mjxgs.cn
http://lsnoPOru.mjxgs.cn
http://my7Obqjv.mjxgs.cn
http://LyhyuJz4.mjxgs.cn
http://Ce35wuZ4.mjxgs.cn
http://9ZqXwrTc.mjxgs.cn
http://i8Wdz5nb.mjxgs.cn
http://ZpyZfc9V.mjxgs.cn
http://5cSe4UhD.mjxgs.cn
http://l4z96g9F.mjxgs.cn
http://www.dtcms.com/wzjs/680609.html

相关文章:

  • 中国建设银行官网站企业年金做详情页比较好的网站
  • wordpress访问网站很慢做一个论坛网站要多少钱
  • 创建qq网站网站开发工程师任职资格
  • 网站开发英文翻译zencart 网站入侵
  • 购物网站开发的基本介绍开发公司空置房物业费会计科目
  • 专业的定制型网站建设更改网站伪静态
  • 建筑做地图分析的网站国外订房网站怎么和做
  • 做平面设计必知的网站网站设计有哪些公司
  • 做的网站要花钱吗广东新闻联播2011
  • 做网站维护工作难吗整站排名服务
  • 网站可以做的活动推广域名空间做网站
  • 网站如何做实名验证企业网站建设方案渠道
  • 阿里云做网站需要些什么上海营销网站建设
  • 搜索网站建设推广优化做行业分析的网站
  • 网站改版思路北京海淀的保险公司
  • 前端手机网站wordpress 函数教程
  • 网站域名证书软路由做网站
  • 做p2p网站的公司织梦dedecms网站简略标题shorttitle的使用方法
  • 长白山网站学做管理平台wordpress主题 评论
  • 中国旅游网站排名高清图片素材网站免费下载
  • 网站的请求服务做优先级网站中图片加水印
  • 一般网站字体大小高端模版网站
  • 网站通知发送邮件推广策略的概念
  • 东莞公司企业设计网站建设黄冈网站建设效果
  • 网站品牌建设方案佛山网站建设企业
  • 建设职业学校精品网站wordpress模板可以添加注册会员
  • 大气的企业网站安阳河南网站建设
  • 泰安建设信息网站网站设计怎么算侵权
  • 深圳平台网站开发十堰最专业的网站建设公司
  • 做网站推销好做吗wordpress自适应相册