基本概念 二叉搜索树是由二叉树组成的,专门用于搜索和查找为目的的一种树。 当前结点比其左子树的其他结点都大,相反当...[作者空间]
一个形象的例子 比如我们的一个View的层级结构,如果这个层级结构很复杂的话,你可以想象下是不是和树这个数据结构很...[作者空间]
前提 这个链表不存在重复值的结点 思路 找到这个结点操作被删除结点的前后指针 复杂度 O(n) 因为你要找到这个结...[作者空间]
思路 有很多方法这个是交换每个结点的前后指针还有递归头/尾插法利用栈的特性 复杂度 // 时间复杂度: O(n)/...[作者空间]
基本介绍 由于顺序表插入,删除操作需要移动大量的元素(比如数组尾部的效率比头部插入删除的效率高,因为头部插入删除你...[作者空间]
OC 语言里面没有二维数组这样的数据结构。一般怎么创建这样的结构呢? 网上的解决方案是用一个大的数组嵌套几个小数组...[作者空间]
有界优先级队列 是一个有元素最大限制的优先级队列。如果一个新的元素插入到有界优先级队列中,但是容量已经最大了,那么...[作者空间]
什么是优先级队列 一个优先级队列是重要元素在最前面的队列。则个队列可能是max-priority queue(最大...[作者空间]
堆 一个堆是一个二叉树,是以数组的方式存在,因此他不用父子指针。这个树由于堆的特性是部分有序的,这个特性决定着这些...[作者空间]
C 语言的数组内存是线性连续的,所以如果操作数组的一些操作可能移动内存中的元素。比如删除或者添加到第零个索引 都要...[作者空间]
双端队列的特性 大致思路是两端都可以进出队列 Deque的实现API 注意的地方 是双端队列的头部的进队和出队,因...[作者空间]
根据前几篇和数据结构有关的博客中一些特殊的结构比如栈和队列是用数组来实现的,其中一些操作可能关联到一些复杂度问题,...[作者空间]
队列的特性 前进先出。 我们来大致描述下进出队列的情况。 进队列 1 进队列现在队列是 12 进队列现在队列是 1...[作者空间]
为什么要学习算法呢 知道一个算法执行多快占用多少空间非常有用,以此来选择解决当前问题的算法。大 O 符号让你能粗略...[作者空间]
栈的特性 栈 的特性是先进后出。 栈的思考 压栈操作是将新元素压入数组的尾部,而不是头部。在数组的头部插入元素是一...[作者空间]