目录
098 堆 heapify 3
099 堆 增删替换
--------------------------------------------------------------------------------------------------------------------------------
up方法里面,child =parent:因为如果没有退出循环,就还要为下一次的比较做好准备,因此要改变child的值,那改变成什么样子呢?就变成这一轮parent的样子。
---------------------------------------------------------------------------------------------------------------------------------
100 堆 e01 堆排序
100 堆e02 求数组第k大元素
100 堆e03 求数据流第k大元素
100 堆e04 求数据流中位数1
100 堆e04 求数据流中位数2
---------------------------------------------------------------------------------------------------------------------------------
代码解释:利用布尔类型判断是大顶堆还是小顶堆,减少重复的代码。
别的扩容代码:
---------------------------------------------------------------------------------------------------------------------------------
经过修改:
100 堆e04 求数据流中位数3
---------------------------------------------------------------------------------------------------------------------------------
比较器
--------------------------------------------------------------------------------------------------------------------------------
101 二叉树 概述
102 二叉树 深度优先遍历
如何记忆:
前中后,则记忆中间的部分,
前对应中间访问的是左,
中对应中间访问的是中,
后对应中间访问的是右。其余的就按照左中右进行补充。
理解:
前序遍历,从左向右走,去的时候遇到啥遍历啥
中序遍历:从左向右走,去的时候不要,回来的时候,遇到啥遍历啥
后序遍历:从左向右,去的时候不要,回来的时候,真正结束了,才遍历,比如像这个1,我确实后来经过了它,但是其实我们的缘分还未尽。缘分尽了,才遍历。
103 二叉树 前中后遍历 递归实现
104 二叉树 前中后遍历 非递归1
用栈记得来时路。
105 二叉树 前中后遍历 非递归2
中序
前序
106 二叉树 前中后遍历 非递归3
后序遍历中,要增加一些细节去限定条件。当peek的右子树为null的时候,因为左子树已经搞完,而又没有右子树,就可以直接弹出peek。当peek的右子树不为null的时候,就要去判断来时路到底是走左子树还是右子树,因为要判断我现在走回来这条路到底是不是从右子树这边走回来(也就是比较弹栈出来的那个数字是不是peek的右子树),如果弹栈的是7,就说明右孩子都处理完了。如果都不是以上的情况, 则标记peek的右子树为curr,进入下一轮的比较。
107 二叉树 前中后遍历 非递归4
108 二叉树 e04 对称二叉树
109 二叉树 e05 最大深度 解法1
110 二叉树 e05 最大深度 解法2
111 二叉树 e05 最大深度 解法3
112 二叉树 e06 最小深度
--------------------------------------------------------------------------------------------------------------------------------
如果是null的话,就不应该比较了。
--------------------------------------------------------------------------------------------------------------------------------
113 二叉树 e07 翻转二叉树
114 二叉树 e08 根据后缀表达式建树
115 二叉树 e09 根据前中遍历结果建树
116 二叉树 e010 根据中后遍历结果建树
117 二叉搜索树 概述
118 二叉搜索树 get
如果函数最后一步是调用自己,那就是伪递归,尽可能将这个形式转化为非递归形式。
非递归,以下
119 二叉搜索树 泛型key
为了让泛型key进行大小比较,就要实现接口,可以搞一个泛型,或者两个泛型。