1. 深度优先遍历 使用场景:常见于各种组合,树遍历,前序遍历、中序遍历、后续遍历 private void dfs(int[] arr, int target,int begin, Deque<Integer> path, Set<List<Integer>> res) { if ( path.s ...
分类:
编程语言 时间:
2020-10-26 10:56:27
阅读次数:
26
先序遍历 Stack<TreeNode> stk = new Stack<>(); stk.push(root); while (!stk.empty()) { TreeNode cur = stk.pop(); if (cur != null) { // visit cur stk.push(cu ...
分类:
其他好文 时间:
2020-10-19 22:18:07
阅读次数:
24
选择 冒泡排序过程,插入排序移动次数,快速排序二轮划分 chmod命令 死锁出现的情况 八进制乘法 设计模式判断 白盒测试用于(单元测试) SQL建立存储的过程 操作系统分区管理 LRU/OPT算法缺页次数 UDP/TCP TCP报文首部(看一条,哪部分是哪部分) 进程调度算法 前序+中序->后序 ...
分类:
其他好文 时间:
2020-10-14 19:59:50
阅读次数:
18
题目链接 530. 二叉搜索树的最小绝对差 题目描述 解题思路 1.利用中序遍历把树转为有序数组,然后在数组上求两个相邻数字的最小值。 2.同样采用中序遍历,可以直接在递归遍历的过程中记录相邻数字的最小值。 3.因为题目给的树是二叉排序树,所以中序遍历的结果一定是一个有序数组,所以两个数的差的最小值 ...
分类:
其他好文 时间:
2020-10-12 20:05:23
阅读次数:
15
题意:给定n个数构建完全二叉树,输出完全二叉树的层序遍历 思路:二叉树的中序遍历建树即为输出 #include<cstdio> #include<queue> #include<vector> #include<algorithm> using namespace std; const int N ...
分类:
其他好文 时间:
2020-09-17 23:04:06
阅读次数:
30
Complete Binary Search Tree PAT-1064 本次因为涉及到完全二叉排序树,所以可以使用数组的形式来存储二叉排序树 对输入序列排序后,得到的是中序遍历二叉排序树的序列。对这颗二叉排序树进行中序遍历,将每个结点的值放入二叉树的存储数组中,最后遍历数组即可求出层次遍历的序列。 ...
分类:
编程语言 时间:
2020-09-17 13:57:32
阅读次数:
29
二叉树的遍历 树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实 ...
分类:
其他好文 时间:
2020-09-09 19:03:13
阅读次数:
33
闲的没事翻新题,突然想起笛卡尔树还没学,于是写了写笛卡尔树的模板题。 P5854 【模板】笛卡尔树 题意 给一个排列p1pn,i号点权值为pi,要求建一棵以编号为关键字的二叉搜索树(中序序列为1n),且以权值为关键字的小根堆。 n ? 1e7 思路分析 难度在于O(n)建树。但既然编号是连续的,那么 ...
分类:
其他好文 时间:
2020-09-08 20:42:17
阅读次数:
37
一、试写一个判别给定二叉树是否为二叉排序树的算法,设此二叉树以二叉链表作存储结构,且树中结点的关键字均不同。 答: 由分析可以知道,通过教材所学的知识我们很容易知道二叉排序树的特点。按照中序遍历的顺序,应当符合当前遍历到的节点值大于前一个遍历到的节点值,所以我们最终得到的中序遍历序列是一个有序序列, ...
分类:
编程语言 时间:
2020-09-03 16:43:50
阅读次数:
48