链表 用不连续的、或连续的存储单元存储线性表元素 每个数据元素后,加上一个地址域,其地址为其直接后继的地址;数据元素和地址域组成结点。 头指针:指向链表的第一个结点,是第一个节点的地址,或链表在存储器中的首地址 头指针的类型与其他节点指针域的指针类型一致,都是指向同一类型的结点 单链表由头指针唯一确 ...
分类:
其他好文 时间:
2019-03-06 20:38:36
阅读次数:
187
为什么数组要从0开始变好,而不是1开始呢? 数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据结构。 随机访问 插入、删除数据很低效 面试题: 数组和链表的区别? 链表适合插入、删除,时间复杂度为O(1);数组支持随机访问,根据小标随机访问的时间复杂度为O(1) 数组的内 ...
分类:
编程语言 时间:
2019-03-04 21:23:37
阅读次数:
185
题目: 在O(1)时间内删除链表节点。给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。 解答: ...
分类:
其他好文 时间:
2019-03-04 15:50:33
阅读次数:
137
#include <iostream> #include <string> using namespace std; struct ListNode { int val; ListNode* next; }; void AddToTail(ListNode** pHead, int value); ...
分类:
其他好文 时间:
2019-03-04 11:16:14
阅读次数:
613
介绍 fhqtreap为利用分裂和合并来满足平衡树的性质, 不需要旋转操作 的一种平衡树。 并且利用函数式编程可以极大的简化代码量。 核心操作 (均为按位置分裂合并) split(rt,l,r,k) 把一个根为rt的子树split成一个根为l和一个根为r的子树(以第k大为界限) 插入 删除 其他操作 ...
分类:
其他好文 时间:
2019-03-03 11:10:28
阅读次数:
209
题目描述: 题目一:在O(1)时间内删除链表节点 :在给定的单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。 注意:输入提供了要删除节点的指针!! 测试用例: 1)功能测试(从有多个节点的链表中删除中间、头、尾节点;从只有一个节点的链表中删除唯一的节点) 2)特殊输入测试(头 ...
分类:
其他好文 时间:
2019-02-26 13:12:37
阅读次数:
222
索引的目的在于提高查询效率,它的作用就相当于一本书的目录; 1. 常见的索引模型 1.1 哈希表 优点:适用于等值查询的场景; 缺点:范围查询效率较低; 1.2 有序数组 优点:范围查询和等值查询效率较高; 缺点:插入、删除操作效率较低; 适用于静态存储引擎,保存一些不会修改的数据; 1.3 搜索树 ...
分类:
数据库 时间:
2019-02-26 01:17:53
阅读次数:
198
一:线性表定义 -《数据结构 - 线性表》顺序存储结构 二:为什么要 链式存储 线性表? - 因为在使用 顺序结构 存储方式存储的时候,每次进行 插入/删除 都需要大量移动元素的位置。 - 所以设计出一种 存储空间不连续 的存储结构。 - 这个线性表可能是这样的(存储位置不固定) - 三:链式存储 ...
分类:
其他好文 时间:
2019-02-22 12:48:22
阅读次数:
168
文字描述 循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。由此,从表中任一结点出发均可找到表中其他结点。 示意图 算法分析 插入、删除、查找等同单链表。 代码实现 1 // 2 // Created by lady on 19-1-27. 3 / ...
分类:
其他好文 时间:
2019-02-17 19:13:43
阅读次数:
201
Binary Search Tree 基本操作 插入,删除, 查找,遍历 ...
分类:
其他好文 时间:
2019-02-17 13:02:14
阅读次数:
132