树
文章平均质量分 88
kobe_yang24
talk is cheap!show your code.
展开
-
二叉树刷题
二叉树刷题 二叉树相关的问题基本都可以用递归来解答,是我们拿来练习递归的好方法。 递归的阶梯关键两个步骤: 1.递归结束条件。(程序什么时候退出) 2.递推公式。 只要找到这两个 结果,递归相关的代码就可以写出来了。切忌不要平铺直叙的去想问题,因为递归相关的问题,人的大脑基本是想不明白的,我们只需要总结出来规律其他的交给计算机即可,这本身就是计算机喜欢做的事情。 例子: 就比如我们非常熟悉的 斐波那切数列。就是后边的值是前边两个数的和。 可以非常容易的写出公式 f(n) = f(n-1) + f(n-2);原创 2021-09-03 11:00:46 · 7388 阅读 · 0 评论 -
二叉查找树
二叉查找树 1.1二叉树与散列表对比 二叉树最大的特点就是支持动态的快速插入、删除、查找等操作。 散列表也是支持这些操作的,而且散列表的这些操作都是比二叉树要高效,时间复杂度都是o(1),既然有了这么高效的散列表,为什么还要有二叉树呢? 一,散列表是无序存储的,如果要有序输出,还是需要进行排序的,对于顺序二叉树来说,直接中序遍历输出的结果就是有序的。 二,散列表的扩容缩容耗时很多,虽然我们可...原创 2018-12-24 23:35:19 · 278 阅读 · 0 评论 -
红黑树
红黑树 1.1平衡二叉查找树 平衡二叉查找树的严格定义:二叉树中任意一个节点的左右子树的高度相差不能大于1。完全二叉树和满二叉树都是平衡二叉树。 平衡二叉查找树最早出现的是AVL树,是一种有严格的平衡二叉树。 发明平衡二叉树的初衷是为了解决普通二叉树在频繁插入、删除、等动态更新的情况下,出现时间复杂度退化的问题。 1.2红黑树 红黑树(Red-Black Tree)是一种不严格的平衡二叉查找...原创 2018-12-24 23:36:23 · 209 阅读 · 0 评论 -
二叉树
二叉树 1.1什么是树(Tree)? 树这种数据结构很像我们现实生活中的树,每个元素都是一个节点,用来连线的相邻节点的关系叫做父子节点。树是一种非线性数据结构。 树的节点有如下几个: 根节点 父节点 子节点 叶子节点 兄弟节点 除此之外树还有三个相似的概念 高度(Height) 深度 (Depth) 层(Level) 高度:节点到叶子节点的最长距离。 深度 :根节点到这个...原创 2018-12-20 09:51:54 · 215 阅读 · 0 评论