前面我们提到了二叉查找树,支持快速的查找、插入和删除操作。中序遍历二叉查找树,可以输出有序的数据序列,非常高效。 但是,二叉查找树存在一个问题,...
前面我们提到了二叉查找树,支持快速的查找、插入和删除操作。中序遍历二叉查找树,可以输出有序的数据序列,非常高效。 但是,二叉查找树存在一个问题,...
树 在介绍二叉树之前,我们需要先明白什么是树,因为二叉树是树的其中一种,因为我们用的最多,所以我们大多都在学习和了解二叉树。 树是一种抽象数据类...
什么是散列表 散列表(hash table),我们平时叫它哈希表或者Hash 表,你肯定经常听到它。 散列表是根据关键码值(Key value)...
什么是跳表 跳表全称为跳跃列表,它允许快速查询,插入和删除一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(logn)。快速...
二分查找算法的简单介绍 今天我们来学习一下二分查找算法,也叫做折半查找算法。使用二分查找算法的前提是数据需要是有序的。二分查找的思想非常简单,很...
递归的理解 在学习数据结构和算法的过程中,递归可能是比较难理解的一个知识点,每次都试着用自己的大脑去把一步一步去想清楚,结果最后把自己都绕晕了。...
什么是队列 队列也是一种操作受限制的线性表,只允许在表的前端进行删除,也就是出队,而在表的后端进行插入,即入队。 举一个生活中常见的例子,我们经...
本文转自公众号 「程序员私房菜 」 一直有写一篇关于排序算法文章的打算,直到我看到了这一篇,我放弃了自己写的打算,因为这篇写的太经典了。这里强烈...
什么是栈 栈是一种运算受限制的线性表,只允许在表的一端进行插入和删除操作。这一端被称为栈顶,另一端被称为栈底。向一个栈中插入新数据叫做进栈、入栈...
上次我们简单的对比了一下数组和链表的区别和各自的优缺点,今天我们来详细看一下链表这个结构。链表的结构五花八门,我们几天主要看一下三种最常用的链表...
专题公告
从头开始学习数据结构和算法,打好基础,需要内功心法,将来再学习任何招式的时候才能得心应手。
qq讨论学习群:772963742