
数据结构:树
飞龙在天max
这个作者很懒,什么都没留下…
展开
-
A1043 Is It a Binary Search Tree(二叉搜索树)
文章目录遇到的问题1 指针定义之后要赋值NULL(空指针)2 vector可以直接进行比较3 复制粘贴要注意完整代码 题目地址:https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856 遇到的问题 1 指针定义之后要赋值NULL(空指针) 大家看这段代码 node* root; if (root ==...原创 2019-08-13 13:39:35 · 210 阅读 · 0 评论 -
A1138 Postorder Traversal (前序中序转后序)
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805345078067200 参考柳如大佬的 #include <iostream> #include <vector> #include <algorithm> #include <string> #include &...翻译 2019-09-06 18:02:12 · 120 阅读 · 0 评论 -
A1094 The Largest Generation(一般树,BFS求含有最多结点的一层)
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805372601090048 Find the leve which has the largest node number! 首先建立一般的树,然后BFS求所有结点的层数,最后找到最多的一层。 #include <iostream> #include &...原创 2019-09-05 22:05:48 · 109 阅读 · 0 评论 -
A1135 Is It A Red-Black Tree(红黑树)
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805346063728640 思路很清晰,首先根据先序遍历建立二叉搜索树,然后判断即可,主要是依据规则2、4、5。 #include <iostream> #include <vector> #include <algorithm>...原创 2019-09-04 21:03:04 · 125 阅读 · 0 评论 -
A1099 Build A Binary Search Tree
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805367987355648 一个给定的二叉搜索树,给定一个序列填入,然后求层序遍历。 难点主要是那个序列填入的方法,我是把序列首先排序,然后对BST进行中序遍历,得到由大到小的序列索引,这样直接输入就行了。 还有就是层序遍历使用队列。 #include <io...原创 2019-09-01 21:33:08 · 99 阅读 · 0 评论 -
7-1 还原二叉树
题目 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。 输入格式: 输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。 输出格式: 输出为一个整数,即该二叉树的高度。 输入样例: 9 ABDFGHIEC FDHGIBEAC 输出样例: 5 思路 开始我想的是根据这个重建一个二叉树,代码如下...原创 2019-08-23 12:07:24 · 676 阅读 · 0 评论 -
PAT A1053 Path of Equal Weight(广义树DFS,preOrder)
题目地址:https://pintia.cn/problem-sets/994805342720868352/problems/994805424153280512 #include <iostream> #include <string> #include <set> #include <map> #include<queue> #in...原创 2019-08-12 22:30:19 · 111 阅读 · 0 评论 -
PAT A1020 Tree Traversals(已知二叉树后序/中序,求层序)
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805485033603072 题目要求很简单,就是已知二叉树后序/中序,求层序 我首先重建了这颗二叉树,然后进行层序遍历。 我熟悉了二叉树的指针操作,还有就是建议做题之前自己在纸上模拟一下: #include <iostream> #include &l...原创 2019-08-12 11:36:41 · 130 阅读 · 0 评论 -
二叉树的5个重要性质
原文:https://blog.youkuaiyun.com/tianlihua306/article/details/44621827 1.在二叉树的第i层上最多有2i−12^{i-1}2i−1 个节点 。(i>=1) 用归纳法证明: 归纳基:i = 1 层时,只有一个根结点, 2i−1=20=1;2^{i-1} = 2^0 = 1;2i−1=20=1; 归纳假设:假设i=k时,命题成立; 归纳证明:...转载 2019-08-15 11:27:54 · 256 阅读 · 0 评论 -
A1098 Insertion or Heap Sort(堆排序)
题目很明确,就是让你写一个插入排序和堆排序,我有以下几点收获: 由于c++数组是从0开始编号,所以如果一个堆(完全二叉树)的一个非叶子结点i,那么它的左孩子是2i+1,右孩子是2i+2。 如果从1开始编号,那么左孩子是2i,右孩子是2i+1; #include <iostream> #include <string> #include <set> #incl...原创 2019-08-15 11:12:20 · 129 阅读 · 0 评论 -
A1107 Social Clusters(并查集)
题目地址:https://pintia.cn/problem-sets/994805342720868352/problems/994805361586847744 大概意思是具有相同兴趣的人聚成一类。 #include <iostream> #include <string> #include <set> #include <map> #inclu...原创 2019-08-14 11:29:04 · 85 阅读 · 0 评论 -
A1147 Heaps (30 分)
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805342821531648 首先建堆,然后判断是最大还是最小,之后post order traversal。但是我的代码有一个数据总是过不了,实在不知道为啥。最后我给出了柳婼大神的代码 #include <iostream> #include <v...原创 2019-09-07 11:38:37 · 112 阅读 · 0 评论