线性表分为顺序表和链表。 顺序表:空间大小固定,方便查找,当插入数据的时候要移动数据。 链表:在每一个数据元素中添加一个保存下一个数据的地址,在插入和删除数据的时候比较方便。 单链表的查找删除原理图 双向链表的插入原理图 双向链表删除原理图 1.设计数据元素的类型(设计链表节点类型) typedef ...
分类:
其他好文 时间:
2020-03-01 09:16:19
阅读次数:
86
一、数据结构 1.手写链表的基本操作(创建、新增节点、删除节点、销毁等) 2.链表的反转 3.如何判断一个链表有环 4.双向链表删除一个非头非尾节点 5.单向链表删除一个非头非尾节点 6.二叉树的前、中、后序遍历打印 7.STL中vector的内部实现原理 8.STL中vector与list的区别 ...
分类:
编程语言 时间:
2019-08-20 22:30:56
阅读次数:
139
1.为什么需要双向链表 答:单链表的节点都只有一个指向下一个节点的指针;单链表的数据元素无法直接访问前驱元素;逆序访问单链表中的元素是极其耗时的!!! 2.双向链表删除节点的3种情况 3.循环链表的插入情况 4.循环链表的删除的几种情况 6.单向链表的插入 7单向链表的删除操作 ...
分类:
其他好文 时间:
2018-08-12 17:15:25
阅读次数:
158
我们已经知道B+树的组织结构及不同层之间是如何关联的了。 现在我们模拟一个B+树是如何从小到大,从无到有,从简到繁的过程。 首先我们来做一些假设: 1,每个页面包括内节点和叶子节点最多可以插入三条记录,插入第四条的时候,就会导致分裂。 2,插入的数据是键值对,但是我们只关注键,值可以不用关注,就简单 ...
分类:
数据库 时间:
2017-08-27 10:11:30
阅读次数:
187
biubiu~~ 这道题实际上就是优化模拟,就是找到最先死的让他死掉,运用时间上的加速,题解上说,要用堆优化,也就是这个意思。 对于链表,单项链表和循环链表都不常用,最常用的是双向链表,删除和插入比较方便。 所谓挂链就是把链表中的值域换成一坨别的东东西...... ...
分类:
其他好文 时间:
2017-08-13 20:07:11
阅读次数:
123
0x00 漏洞的原理 Double Free其实就是同一个指针free两次。虽然一般把它叫做double free。其实只要是free一个指向堆内存的指针都有可能产生可以利用的漏洞。double free的原理其实和堆溢出的原理差不多,都是通过unlink这个双向链表删除的宏来利用的。只是doubl ...
分类:
其他好文 时间:
2017-07-19 01:07:14
阅读次数:
522
1.双向链表删除节点2.LRU实现(用什么样数据结构)3.容器中set的底层实现4.排序算法(快排)算法稳定性定义,哪些是稳定的。5.数据库中范式(第几范式)6.十万个单词,查找一句话中单词是否在其中,以及为其中某个单词的后缀?7.设计模式(单例)8.是否熟悉网络编程9.struct和class区别...
分类:
其他好文 时间:
2015-09-11 12:15:30
阅读次数:
216
#include#includetypedef struct DoubleLinkedList{ int data; struct DoubleLinkedList *pre; struct DoubleLinkedList *next;}DlinkedList_Node;//建立...
分类:
编程语言 时间:
2015-07-30 23:13:27
阅读次数:
202
在双向链表中删除一个指定的节点,可以分为下面的这3种情况:
(a) 原始的双向链表
(b) 删除头节点后
(c) 删除中间节点后
(d) 删除尾节点后
算法
假设需要被删除的节点称之为delNode.
1) 如果delNode为头节点,则将头指针指向后续的节点。
2) 如果delNode的前向节点存在,则将前向节点的后向指针置为delNode...
分类:
其他好文 时间:
2015-06-14 01:55:35
阅读次数:
252