pat 甲级 1086(树的遍历||建树)】的更多相关文章

PAT甲级专题-树的遍历 涉及知识点:树.建树.深度优先搜索.广度优先搜索.递归 甲级PTA 1004 输出每一层的结点,邻接表vector建树后.用dfs.bfs都可以边搜边存当前层的数据, #include<bits/stdc++.h> using namespace std; const int maxn = 110; int n, m; vector<int> g[maxn]; int ans[maxn]; int deep = 0; void dfs(int x, int…
思路1:可以用建树来做 由于是先序遍历,所以直接先序建树就行了. #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; int a[maxn],n,num; ]; void build(int id) { int x; ) return ; scanf("%s",str); ]=='u') { scanf("%d",&x);…
1086 Tree Traversals Again (25分)   An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stack operations ar…
思路:直接遍历整棵树判定每个结点是否有孩子,没有则把当前高度的叶子节点数加一. AC代码 #include <stdio.h> #include <string.h> #include <algorithm> #include <vector> using namespace std; const int maxn = 100+5; vector<int> G[maxn]; int level[maxn]; int height; void df…
题目链接:https://www.patest.cn/contests/gplt/L2-006 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(<=),是二叉树中结点的个数.第二行给出其后序遍历序列.第三行给出其中序遍历序列.数字间以空格分隔. 输出格式: 在一行中输出该树的层序遍历的序列.数字间以1个空格分隔,行首尾不得有多余空格. 输入样例: 输出样例: 题意:给出一棵树的后序与中序遍历,输出层序遍历…
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184 思路: (1)用vector记录每个非叶子节点的子节点 (2)通过dfs记录每一层的节点的个数,并记录最高层的节点数量 (3)从0开始,遍历每一层. #include<iostream> #include<cstdio> #include<cstring> #include<vector> us…
https://pintia.cn/problem-sets/994805342720868352/problems/994805380754817024 An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1…
一次考试经历 今天是"大雪",很冷. 来到隔壁的学校考试,记得上一次来河中医是两年前大一刚开学吧,那天晚上印象比较深刻,6个室友骑车到处闲逛.当时还不会Hello world. 很巧,遇到了一年前在网络上一起准备蓝桥杯的小伙伴,考前,相约明年再来考一次..然而,下次可能不会再来了. A题:字符串处理 B题:模拟链表 C题:图论,简单的邻接矩阵判断顶点相连 D题:小根堆,给出中序序列建树,输出层序遍历的序列. 除了第一题以外,其他三题都和往年的题型一样的. 第一题字符串看起来就比较难处理…
给定先序中序遍历的序列,可以确定一颗唯一的树 先序遍历第一个遍历到的是根,中序遍历确定左右子树 查结点a和结点b的最近公共祖先,简单lca思路: 1.如果a和b分别在当前根的左右子树,当前的根就是最近祖先 2.如果根等于a或者根等于b了,根就是最近祖先:判断和a等还是和b等就行了 3.如果都在左子树上,递归查左子树就可以了.这里找到左子树的边界和根(通过先序中序序列) 4.如果都在右子树上,递归查右子树. 代码1:不建树的做法,参考柳婼blog~ #include<bits/stdc++.h>…
本文为PAT甲级分类汇编系列文章. AVL树好难!(其实还好啦~) 我本来想着今天应该做不完树了,没想到电脑里有一份讲义,PPT和源代码都有,就一遍复习一遍抄码了一遍,更没想到的是编译一遍通过,再没想到的是运行也正常,最没想到的是一遍AC. 其实很多题都有数,std::set 之类用的是红黑树,据说很复杂,比AVL树还要复杂的那种.但是,用到这些设施的题,都不在这一分类下,这一分类下的题,因为题目要求自己建树,也就不用标准库设施了. 大多数题中,树在内存中都是连续存放的.不是像完全二叉树那样的连…