![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 90
javascript艺术
不积跬步无以至千里,不积小流无以成江河!功不唐捐,玉汝于成!
展开
-
程序员内功心法(二叉树搜索树、AVL树、234树、红黑树汇总)
历经了一个多月,终于完成了二叉搜索树的学习和整理。之前只是零散的发布出来,并没有做一个完整的分享。这次,我将之前的内容整理到一起,一次性的对这个话题做个终结。如果看了这篇,还是不懂二叉搜索树,那你就来后台留言找我,我将给您一一解答。这篇文章主要介绍二叉搜索树、平衡二叉树里的AVL树、2-3-4树、红黑树。可以点击分篇链接查看更细致的内容在生活中我们经常会使用到搜索的功能。在我们数据量不大的情况下,可以使用每次遍历全部数据,查询我们的目标数据。当数据量增加时,我们遍历的方式就有些力不从心了...原创 2021-06-08 14:55:13 · 302 阅读 · 0 评论 -
程序员的内功心法-红黑树
从上篇《2-3-4树的插入和删除》了解到了底层原理和操作的逻辑思路。尽管我们完成 了平衡树的逻辑,但按照对应逻辑实现代码和各种情况的处理,却不容易。所以我们要减少由于2-3-4树为了实现平衡,而导致的实现复杂度上升的情况。我们现在使用普通的二叉树+颜色来表示2-3-4树(红黑树是多路平路查找树的一种实现)红黑树的定义:文章里的红黑树的定义了参考《算法》第四版 红链接必须是左链接,根结点必须是黑色的 不能同时存在两条连续的红链接 任一空链接到根节点的路径上经历的黑色节点个原创 2021-06-02 14:00:46 · 229 阅读 · 4 评论 -
程序员的内功心法-234树
直面弱点,奋发图强!!!引言红黑树、B树、B+树,都是软件开发中一个比较难理解和掌握的知识点。他们的本质依然是平衡二叉搜索树。如果直接去学习红黑树、B树、B+树的知识点,无异于雾里看花。这次我们从这些数据结构的底层逻辑设计出发,不牵扯任何代码层面上的内容。二三四树定义 二节点 一个key和左右两个链接;其中key大于左链接、小于右链接 三节点 包含两个key和三个链接(两个key分别称为key1和key2,key1小于key...原创 2021-05-19 14:28:36 · 294 阅读 · 2 评论 -
程序员的内功心法-AVL树
接上篇文章《二叉搜索树》了解到二叉搜索树在极端情况也不能满足我们对于查询性能的要求。二叉树的一些统计特性第n层最多的节点个数2n-1 高度为h的二叉树,最多包含2h-1个节点,所以n个节点的二叉树的最小高度是log2n + 1 查找成功时,查找次数不会超过树的高度h二叉树查询性能的衡量我们下面来使用 A - H字符来观察二叉搜索树在不同的插入顺序下构造的树的结果自然顺序的平均查找长度为ASL=(1+ 2 + 3 + 4+ 5+ 6+ 7 +8) / 8 = 4.5...原创 2021-04-30 17:23:57 · 167 阅读 · 4 评论 -
程序员的内功心法,你不来看看吗?
最近这阵工作,我越来越感受到基础知识能力的重要性。之前都是在赶进度、做业务逻辑,逃避自己基础薄弱的事实。最近下定决心,加强之前薄弱的基础。先从自己之前一直似是而非的搜索树的内容开始吧。在生活中我们经常会使用到搜索的功能。在我们数据量不大的情况下,可以使用每次遍历全部数据,查询我们的目标数据。当数据量增加时,我们遍历的方式就有些力不从心了;也可以将数据的数据排序,使用比较高效的二分查找方式,但是在插入或删除数据时,数组表现就会很慢。所以我们可以结合二分查找查询的高效 +链表添加删除的高效性来实现高效搜..原创 2021-04-19 14:24:59 · 222 阅读 · 0 评论