
树
小王子y
互关啊!!
展开
-
PAT甲级真题1020 树的遍历
定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2#include <cstring>#inclu原创 2021-04-23 00:11:50 · 277 阅读 · 0 评论 -
PAT甲级真题1043 判断二叉搜索树
二叉搜索树 (BST) 递归定义为具有以下属性的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值它的左、右子树也分别为二叉搜索树我们将二叉搜索树镜面翻转得到的树称为二叉搜索树的镜像。现在,给定一个整数序列,请你判断它是否可能是某个二叉搜索树或其镜像进行前序遍历的结果。二叉树的镜像在这输入格式第一行包含整数 N,表示节点数量。第二行包含 N 个整数。输出格式如果给定整数序列是某个二叉搜索树或其镜原创 2021-04-22 08:26:17 · 407 阅读 · 0 评论 -
PAT甲级真题1110 完全二叉树
给定一个树,请你判断它是否是完全二叉树。输入格式第一行包含整数 N,表示树的结点个数。树的结点编号为 0∼N−1。接下来 N 行,每行对应一个结点,并给出该结点的左右子结点的编号,如果某个子结点不存在,则用 - 代替。输出格式如果是完全二叉树,则输出 YES 以及最后一个结点的编号。如果不是,则输出 NO 以及根结点的编号。数据范围1≤N≤20输入样例1:97 8- -- -- -0 12 34 5- -- -输出样例1:YES 8输入样例2:8- -4原创 2021-04-22 01:11:09 · 263 阅读 · 0 评论 -
PAT甲级真题1099 构建二叉搜索树
二叉搜索树 (BST) 递归定义为具有以下属性的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值它的左、右子树也分别为二叉搜索树给定二叉树的具体结构以及一系列不同的整数,只有一种方法可以将这些数填充到树中,以使结果树满足 BST 的定义。请你输出结果树的层序遍历。示例如图 1 和图 2 所示。输入格式第一行包含一个正整数 N,表示树的结点个数。所有结点的编号为 0∼N−1,并且编号为 0 的结点是根结原创 2021-04-22 00:56:24 · 254 阅读 · 0 评论 -
第十届蓝桥杯省赛 完全二叉树的权值(清晰!!!)
给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 A1,A2,⋅⋅⋅AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1。输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,⋅⋅⋅AN。输出格式输出一个整数代表答案。数据范围1≤N≤105−105≤Ai≤105输入样例:71 6 5 4 3 2 1输原创 2020-12-22 22:30:54 · 273 阅读 · 0 评论 -
PAT甲级真题1119 前序和后序遍历(复杂递归)
假设一个二叉树上所有结点的权值都互不相同。我们可以通过后序遍历和中序遍历来确定唯一二叉树。也可以通过前序遍历和中序遍历来确定唯一二叉树。但是,如果只通过前序遍历和后序遍历,则有可能无法确定唯一二叉树。现在,给定一组前序遍历和后序遍历,请你输出对应二叉树的中序遍历。如果树不是唯一的,则输出任意一种可能树的中序遍历即可。输入格式第一行包含整数 NN,表示结点数量。第二行给出前序遍历序列。第三行给出后序遍历序列。一行中的数字都用空格隔开。输出格式首先第一行,如果树唯一,则输出 Yes,如果原创 2020-12-09 21:53:33 · 330 阅读 · 0 评论 -
PAT甲级真题1021 最深的根(网上题解最好懂)
一个无环连通图可以被视作一个树。树的高度取决于所选取的根节点。现在,你要找到可以使得树的高度最大的根节点。它被称为最深的根。输入格式第一行包含整数 NN,表示节点数量。节点编号为 1∼N1∼N。接下来 N−1N−1 行,每行包含两个整数,表示两个节点之间存在一条边。输出格式输出最深的根的节点编号。如果最深的根不唯一,则按照从小到大的顺序,将它们依次输出,每个占一行。如果给定的图不是树,输出 Error: K components,其中 KK 是图中连通分量的数量。数据范围1≤N≤1原创 2020-12-09 17:53:07 · 565 阅读 · 0 评论 -
PAT甲级真题1138 后序遍历
假设二叉树上各结点的权值互不相同且都为正整数。给定二叉树的前序遍历和中序遍历,请你输出二叉树的后序遍历的第一个数字。输入格式第一行包含整数 NN,表示二叉树结点总数。第二行给出二叉树的前序遍历序列。第三行给出二叉树的中序遍历序列。输出格式输出二叉树的后序遍历的第一个数字。数据范围1≤N≤500001≤N≤50000输入样例:71 2 3 4 5 6 72 3 1 5 4 7 6输出样例:3#include <iostream>#include <unord原创 2020-12-01 22:36:13 · 310 阅读 · 0 评论 -
PAT甲级真题1020 树的遍历(递归)
一个二叉树,树中每个节点的权值互不相同。现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。输入格式第一行包含整数 NN,表示二叉树的节点数。第二行包含 NN 个整数,表示二叉树的后序遍历。第三行包含 NN 个整数,表示二叉树的中序遍历。输出格式输出一行 NN 个整数,表示二叉树的层序遍历。数据范围1≤N≤301≤N≤30输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2#include<iostream>#i原创 2020-12-01 18:51:19 · 297 阅读 · 0 评论 -
PAT甲级真题1004 数叶子结点(DFS,BFS两种解法)
家庭关系可以用家谱树来表示,给定一个家谱树,你的任务是找出其中没有孩子的成员。输入格式第一行包含一个整数 NN 表示树中结点总数以及一个整数 MM 表示非叶子结点数。接下来 MM 行,每行的格式为:ID K ID[1] ID[2] … ID[K]IDID 是一个两位数字,表示一个非叶子结点编号,KK 是一个整数,表示它的子结点数,接下来的 KK 个 ID[i]ID[i] 也是两位数字,表示一个子结点的编号。为了简单起见,我们将根结点固定设为 0101。所有结点的编号即为 01,02,03,…,原创 2020-11-30 22:56:26 · 447 阅读 · 0 评论 -
2020 天梯赛 L1-7 前世档案(分析详解)
网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。输入格式:输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。随后 M 行,每行顺次给出玩原创 2020-11-29 20:52:22 · 3103 阅读 · 3 评论