数据结构:树
飞龙在天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 · 194 阅读 · 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 · 114 阅读 · 0 评论 -
A1094 The Largest Generation(一般树,BFS求含有最多结点的一层)
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805372601090048Find the leve which has the largest node number!首先建立一般的树,然后BFS求所有结点的层数,最后找到最多的一层。#include <iostream>#include &...原创 2019-09-05 22:05:48 · 100 阅读 · 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 · 116 阅读 · 0 评论 -
A1099 Build A Binary Search Tree
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805367987355648一个给定的二叉搜索树,给定一个序列填入,然后求层序遍历。难点主要是那个序列填入的方法,我是把序列首先排序,然后对BST进行中序遍历,得到由大到小的序列索引,这样直接输入就行了。还有就是层序遍历使用队列。#include <io...原创 2019-09-01 21:33:08 · 93 阅读 · 0 评论 -
7-1 还原二叉树
题目给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5思路开始我想的是根据这个重建一个二叉树,代码如下...原创 2019-08-23 12:07:24 · 655 阅读 · 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 · 103 阅读 · 0 评论 -
PAT A1020 Tree Traversals(已知二叉树后序/中序,求层序)
原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805485033603072题目要求很简单,就是已知二叉树后序/中序,求层序我首先重建了这颗二叉树,然后进行层序遍历。我熟悉了二叉树的指针操作,还有就是建议做题之前自己在纸上模拟一下:#include <iostream>#include &l...原创 2019-08-12 11:36:41 · 121 阅读 · 0 评论 -
二叉树的5个重要性质
原文:https://blog.csdn.net/tianlihua306/article/details/446218271.在二叉树的第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 · 246 阅读 · 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 · 125 阅读 · 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 · 80 阅读 · 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 · 103 阅读 · 0 评论