
ACM-树
3stone_
别想了,动手吧
展开
-
【ACM】PAT. A1086 Tree Traversals Again【二叉树遍历】
题目链接题目分析Push 表示 前序队列 Pop 表示 中序队列 输出:后序遍历序列解题思路用前序 + 后序 构造二叉树,再遍历输出后序队列AC程序(C++)/***************************@Author: 3stone*@ACM: PAT.A1086 Tree Traversals Again *@Time: 18/7/26...原创 2018-07-26 22:17:52 · 265 阅读 · 0 评论 -
【ACM】- PAT. A1066 Root of AVL Tree 【AVL】
题目链接题目分析给出一个序列,输出由它构造出的AVL树的根结点值解题思路就是 AVL树 的构造过程而已,很简单!AC程序(C++)/***********************************@ID: 3stone*@ACM: PAT.A1066 Root of AVL Tree*@Time: 18/8/16*@IDE: VSCode 20...原创 2018-08-16 16:54:14 · 212 阅读 · 0 评论 -
【ACM】- PAT. A1064 Complete Binary Serach Tree 【BST】
题目链接题目分析输入一组整数(不等),要求构造一棵树,满足同时为BST和完全二叉树 之后输出层序遍历序列解题思路思路一:利用BST中序遍历为递增序列思路二:利用完全二叉树的性质切分序列思路一 (简单)1、开一个数组CBT[]用来存储完全二叉树; 2、将输入的数值递增排序; 3、对CBT[]表示的二叉树进行中序遍历,并在遍历过程中将数字从小到大填入数组; ...原创 2018-08-18 21:13:43 · 256 阅读 · 0 评论 -
【ACM】- PAT. A1053 Path of Equal Weight 【树的遍历】
题目链接题目分析给出特定值S,查找(根结点到所有叶结点的权重和 = S ) 的所有路径 1、根节点编号:0 2、输出:满足条件的weight序列,降序,解题思路1、建树(静态存储); 2、先根遍历,用vector<int>保存路径 (注意递归返回时弹出加入的那个结点); 3、vector[]数组保存多个结果,vector可以直接比较,用sort()函数排序;...原创 2018-08-18 19:44:28 · 252 阅读 · 0 评论 -
【ACM】- PAT. A1004 Counting Leaves 【树的遍历】
题目链接题目分析输出一棵树每层的叶节点个数 注:rootId = 1;结点上限100;解题思路1、建树(今天存储) 2、(法一)层序遍历(BFS) 层号稍微麻烦一点,两种处理思路 (1)标记每层最后一个结点,从而找到换层的时间点 (2)开一个数组,专门记录每个结点的深度 3、(法二)先序遍历(DFS)AC程序(C++)...原创 2018-08-18 17:32:34 · 190 阅读 · 0 评论 -
【ACM】- PAT.A1094 The Largest Generation【树的遍历】
题目链接题目分析查找树中结点最多的是哪一层;解题思路1、树的结点没有信息,故用 静态存储 的简化形式vecrot<int>[]; 2、先序遍历(DFS)层序遍历(BFS)都行;开一个数组level[]记录每层的结点数,最后遍历查找最大层即可。静态存储 版本/***************************@Author: 3stone*@AC...原创 2018-08-18 16:26:24 · 223 阅读 · 0 评论 -
【ACM】- PAT. A1079 Total Sales of Supply Chain【树的遍历】
题目链接题目分析1、用树来表示商品分销,每个结点代表一个人,计算最后的收益,即叶节点的值; 2、每增加一层,加价r%; 3、结点编号0 ~ N-1 ,根节点为0;上限10^5;结果保留1位小数;解题思路1、树的 静态存储 ,边输入边建树; 2、先序遍历,记录当前结点深度,到达叶结点时累加即可;AC程序(C++)/**************************...原创 2018-08-18 16:03:53 · 289 阅读 · 0 评论 -
【ACM】- PAT. A1090 Highest Price in Supply Chain 【树的遍历】
题目链接题目分析1、用树来表示商品分销,每个结点代表一个人,计算最高出售价,即叶节点的最大权值 2、每增加一层,加价r% 3、结点编号0 ~ N-1;上限10^5;结果保留2位小数 4、输入是每个结点的父节点,根节点的父节点为-1解题思路1、由于只需记录结点关系,结点自身不带信息,直接用树的 静态存储 的简化形式vector&lt;int&gt;[]即可 2、要计算最高...原创 2018-08-18 15:57:04 · 159 阅读 · 0 评论 -
【ACM】- PAT. A1106 Lowest Price in Supply Chain 【树的遍历】
题目链接题目分析1、用树来表示商品分销,每个结点代表一个人,计算最后的收益,即叶节点的值 2、每增加一层,加价r% 3、结点编号0 ~ N-1 ,根节点为0;上限10^5;结果保留1位小数解题思路1、树的静态存储(结点无权值 - 简化形式),边输入边建树 2、先序遍历,记录当前结点深度,到达叶结点时判断、更新AC程序(C++)/************...原创 2018-08-18 15:53:03 · 205 阅读 · 0 评论 -
【算法笔记】- 树和二叉树
《算法笔记》- 第9章整理《算法笔记》- 第9章整理| 二叉树(一)存储结构与基本操作(二)完全二叉树(三)遍历(四)二叉树静态存储| 树(一)静态存储| 二叉查找树(BST)| 平衡二叉树(AVL)(一)、定义(二)基本操作(查找、插入、建立)| 哈夫曼树(待整理)| 二叉树注意区分二叉树和度为2的树的区...原创 2018-08-14 19:31:18 · 651 阅读 · 0 评论 -
【ACM】PAT. A1102 Invert a Binary Tree 【二叉树】
题目链接题目分析输入顺序即为结点下标,输入内容为结点的左右子树下标解题思路1、保存输入结点信息 2、找到根结点 3、构造出二叉树 4、不用再invert,遍历时反转顺序即可!AC程序(C++)/***************************@Author: 3stone*@ACM: PAT.A1102 Invert a Binary Tree ...原创 2018-07-26 23:47:33 · 447 阅读 · 0 评论 -
【ACM】- PAT. A1043 Is It a Binary Search Tree 【BST】
题目链接题目分析给出一个序列,判断是否为BST树的先序遍历序列解题思路1、按照所给序列构造BST树; 2、先序遍历这棵树,得到的序列与所给序列相同则说明是,否则不是 注:用vector保存序列,这样比较时比较方便,不然还要写循环;AC程序(C++)/***********************************@ID: 3stone*@ACM: ...原创 2018-08-17 10:02:34 · 174 阅读 · 0 评论