6_10 下落的树叶(UVa699)<二叉树的DFS>
每年到了秋天树叶渐渐染上鲜艳的颜色,接着就会落到树下来。假如落叶发生在二叉树,那会形成多大的树叶堆呢?
我们假设二叉树中的每个节点所落下的叶子的数目等于该节点所储存的值。我们也假设叶子都是垂直落到地面上(真感谢没有风把他们吹的到处都是)。最后,我们再假设节点之间水平的距离是以下列方式定义:某个节点到其左子树以及到其右子树的水平距离均为1。以下图来说明:

含有5和含有6的节点位于同一水平位置(当然,他们垂直的位置不同)。含有7的节点位于含有5的节点和含有6的节点左边一个位置。而含有3的节点则位于含有5的节点和含有6的节点右边一个位置。当叶子开始落下时,上面的树会在地面上形成3堆树叶。最左边那一堆有7片叶子(从最左边那个节点产生的),再来的一堆含有11片叶子(从含有5及含有6这两个节点产生的),最右边的一堆则含有3片叶子(从最右边那个节点产生的)。
Input
输入含有多组测试数据。
每组测试数据代表一棵树。描述树的方法为给你根(root)的值,然后描述左子树,然后描述右子树。假如一个子树是空的,其值为-1。因此,上图的树可描述为:5 7 -1 6 -1 -1 3 -1 -1。每个真实的节点含有一个大于0的值。
输入的最后一棵树其根的值为-1,代表输入结束(此树不用输出),请参考Sample Input。
Output
对每组测试数据输出3列,第1列输出这是第几组测试数据。第二列输出落叶所形成的树叶堆所含的叶片。由左到右,树叶堆之间以一空格相隔,长度不会超过80个字元。第三列为一空白列。请参考Sample Output。
Sample Input
5 7 -1 6 -1 -1 3 -1 -1
8 2 9 -1 -1 6 5 -1 -1 12 -1
-1 3 7 -1 -1 -1
-1
Sample Output
Case 1:
7 11 3
Case 2:
9 7 21 15
6_10 下落的树叶(UVa699)<二叉树的DFS>的更多相关文章
- 6-10 下落的树叶 uva699
类似第九题 都是属于比较巧妙的题目 ! 用一个p数组来保存水平值 然后开始built 自然就会按照自左而右的顺序来读取!!!!!!这很重要 #include<bits/stdc++.h& ...
- 下落的树叶 (The Falling Leaves UVA - 699)
题目描述: 原题:https://vjudge.net/problem/UVA-699 题目思路: 1.依旧二叉树的DFS 2.建树过程中开个数组统计 //紫书源代码WA AC代码: #include ...
- (二叉树 递归 DFS) leetcode 100. Same Tree
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
- (二叉树 BFS DFS) leetcode 104. Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- (二叉树 BFS DFS) leetcode 111. Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- Java实现 LeetCode 655 输出二叉树(DFS+二分)
655. 输出二叉树 在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则: 行数 m 应当等于给定二叉树的高度. 列数 n 应当总是奇数. 根节点的值(以字符串格式给出)应当放在可放置的第一 ...
- UVa 699 下落的树叶
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 二叉树(dfs)
样例输入: 5 //下面n行每行有两个数 2 3 //第i行的两个数,代表编号为i的节点所连接的两个左右儿子的编号. 4 5 0 0 // 0 表示无 0 0 0 0 样 ...
- 二叉树路径搜索---DFS 路径和
vector<vector<int>> pathSum(TreeNode* root,int sum){//DFS遍历获取适合路径,当递归到叶子结点且sum为0,表示该路径合适 ...
随机推荐
- Mysql部分存储引擎介绍
Mysql存储引擎 什么是存储引擎 mysql中建立的库 --> 文件夹 库中建立的表 --> 文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制: ...
- Tomcatd断点调试Debug
ideaDebug设置
- 3ds Max File Format (Part 2: The first inner structures; DllDirectory, ClassDirectory3)
Now that we understand the outer structure of the file, it's time to look closer to what's inside. T ...
- 为什么hashmap的容量永远要是2的次方
源码hashmap.java文件中有个函数叫tableSizeFor(),他的作用是,通过-1>>>n-1返回一个大于n的最小二次幂,n为map之前的容量,而函数返回值就是扩容的二次 ...
- 最近手机价格全线暴跌真的只是因为5G要来了吗?
等等党,是一群数量颇大的消费群体.他们的消费习性是绝不买刚上市的新品,而是一直等.等到他们认为产品的价格已经跌无可跌,或者性价比十足的时候再出手.不得不说,与早买早享受的尝鲜消费群体相比,等等党代表了 ...
- Charles 查看https请求数据 Mac/ android
Charles_v4.0.1_Mac_破解版下载地址:https://pan.baidu.com/s/1c23VPuS 1.在Mac电脑上安装Charles的根证书 打开Charles->菜单H ...
- c数据结构 绪论
四种逻辑结构:1:集合结构 结构中的数据元素除了同属于同一个集合的关系外,无任何其他关系2:线性结构 结构中的数据元素之间存在着一对一的线性关系3:树形结构 结构中的数据元素之间存在着一对多的层次关系 ...
- C语言随笔1:内存分配方式与动静态变量
首先几个基本概念(网上的各种说法都很乱:个人理解整理了一下 内存分类方法很多,动态.静态: 五区: 三段: 内存的区: 1.动态存储区分为 栈区.堆区 也统称为堆栈段1.1栈区(.stack) ...
- Thymeleaf th:include,th:replace使用
来自:https://blog.csdn.net/believe__sss/article/details/79992408
- 家庭记账小账本Android studio
经过长达7天多的时间,从Android studio的安装碰到很多的问题,真的很不走运,别人安装Android studio都是一气呵成,我的Android真的没话说 把自己的这些天的开发成果展示一下 ...