![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
二叉树
二叉树
爱编程的大李子
路漫漫其修远兮,吾将上下而求索
展开
-
P1030 +P1827
P1827 [USACO3.4]美国血统 American Heritage输入ABEDFCHGCBADEFGH 输出AEFDBHGC思路:根据先序和中序推后序,一共有两种方法:1.参数为字符串和 2.参数为字符串的起始下标.参考代码#include<bits/stdc++.h>using namespace std;string preorder, inorder;void solve1(string pre, string in) { int index =原创 2021-05-11 21:40:51 · 130 阅读 · 0 评论 -
P4913 【深基16.例3】二叉树深度
题目描述输入72 73 64 50 00 00 00 0输出4思路:(顺序)构建二叉树+DFS参考代码#include<bits/stdc++.h>using namespace std;typedef struct{ int left; int right;}BNode;BNode arr[1000000+10]; int n,idx=1,cnt;void dfs(int x,int deep){ if(x==0){ return; }原创 2021-05-03 11:50:47 · 252 阅读 · 0 评论 -
UVA122 树的层次遍历 Trees on the level
题目描述输入(11,LL) (7,LLL) (8,R) (5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ()(3,L) (4,R) ()输出5 4 8 11 13 4 7 2 1not complete思路1:指针方式实现二叉树 (链式存储)首先定义一个结构体,然后定义一个结构体指针root,作为整棵树的根节点。如果需要用到左右节点则申请一个空间,也就是用不到的就不申请,以节省空间。遍历方式是广度优先遍历(BFS),从根节点依次拓展子节点,如果有子节原创 2021-05-03 11:38:27 · 238 阅读 · 0 评论 -
UVA699 下落的树叶 The Falling Leaves
题目描述输入5 7 -1 6 -1 -1 3 -1 -18 2 9 -1 -1 6 5 -1 -1 12 -1 -1 3 7 -1 -1 -1-1输出Case 1:7 11 3Case 2:9 7 21 15思路:二叉树+模拟 利用前序遍历的思想进行递归,存储同一竖直线上的结点的编号之和.最后从左到右遍历输出即可,要注意UVA那坑输出.参考代码#include<bits/stdc++.h>using namespace std;const int maxn =原创 2021-05-01 17:03:54 · 215 阅读 · 0 评论 -
UVA839 天平 Not so Mobile
题目描述:输入10 2 0 40 3 0 11 1 1 12 4 4 21 6 3 2输出YES思路:使用递归进行模拟 要注意输出格式中的空格.#include<bits/stdc++.h>using namespace std;int n;bool flag=true;//做标记 int solve(){ int w1,w2,d1,d2; cin>>w1>>d1>>w2>>d2; if(!w1) w1原创 2021-05-01 15:30:49 · 139 阅读 · 0 评论 -
UVA548 树 Tree
题意输入一个二叉树的中序和后序遍历,请你输出一个叶子节点,该叶子节点到根的数值总和最小,且这个叶子是编号最小的那个。 输入: 您的程序将从输入文件中读取两行(直到文件结尾)。第一行是树的中序遍历值序列,第二行是树的后序遍历值序列。所有值将不同,大于零且小于或等于10000.二叉树的节1<=N<=10000。 输出: 对于每个树描述,您应该输出最小值路径的叶节点的值。存在多路径最小的情况下,您应该选择终端叶子节点上具有最小值的那条路径,且输出那个最小值的终端叶子。输入3 2 1 4 5 7原创 2021-04-27 11:07:35 · 267 阅读 · 0 评论 -
UVA536 二叉树重建 Tree Recovery
题意输入一棵二叉树的先序遍历和中序遍历序列,输出它的后序遍历序列。输入DBACEGF ABCDEFGBCAD CBAD输出ACBFGEDCDAB思路:我们可以通过二叉树的先序和中序可以推出后序节点.先序得根,中序分左右,通过递归便可输出后序节点.此题中只是输出后序,没有必要存储起来.#include<bits/stdc++.h>using namespace std;string preorder,inorder;void solve(string pre,stri原创 2021-04-26 20:21:10 · 227 阅读 · 0 评论 -
P1305---新二叉树
题目描述输入一串二叉树,输出其前序遍历。输入格式第一行为二叉树的节点数 n。(1≤n≤26)后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。空节点用 * 表示输出格式二叉树的前序遍历。输入6abcbdicj*d**i**j**输出abdicj思路分析:对于二叉树的存储可以有顺序和链式两种,两种各有优缺点,顺序容易查找,链式容易插入和删除.本题中,如果采用链式存储,输入一个节点组合(根左右),都需要查找根在树中的位置,而且这个题中也不能保证节点的输入按照层次/顺原创 2021-04-25 22:28:25 · 422 阅读 · 0 评论 -
P4715 【深基16.例1】淘汰赛
题目描述输入34 2 3 1 10 5 9 7输出1思路1:模拟+构建哈夫曼树, 当只剩下两个节点时,就是一个是冠军一个是亚军.参考代码#include<bits/stdc++.h>#include<queue>using namespace std;typedef struct { int score; int loc;}Node;queue<Node> Q;int n;Node w1, w2;int main() { c原创 2021-05-02 16:58:35 · 275 阅读 · 0 评论 -
UVA297 四分树 Quadtrees
题目描述输入3ppeeefpffeefepefepeefepeeefpeefepeeefpeepefefe输出There are 640 black pixels.There are 512 black pixels.There are 384 black pixels.思路:二叉树+模拟 给出了先序顺序,根据先序把二叉树用图表示出来,两个图相加,统计黑色小块的个数.参考代码#include<bits/stdc++.h>using namespace std原创 2021-05-01 22:13:45 · 215 阅读 · 0 评论