码迷,mamicode.com
首页 >  
搜索关键字:头指针 插入删除    ( 1800个结果
ConcurrentSkipListMap原码解析
SkipList介绍 1. SkipList(跳表),在理论上能够在O(log(n))时间内完成查找、插入、删除操作。SkipList是一种红黑树的替代方案,由于SkipList与红黑树相比无论从理论和实现都简单许多,所以得到了很好的推广。SkipList是基于一种统计学原理实现的,有可能出现最坏情况,即查找和更新操作都是O(n)时间复杂度,但从统计学角度分析这种概率极小。使用SkipL...
分类:其他好文   时间:2015-04-13 19:01:10    阅读次数:350
leetcode之Insertion Sort List
Sort a linked list using insertion sort.这道题是用链表做插入排序。虽然之前数据结构中学习了链表的插入删除等,但那些都是最简单的基本操作,只是给出一个节点,直接给出插入位置。首先,插入排序的思想是,每次将一个元素插入到前面已排序的有序的链表中,因此首先要找到需要...
分类:其他好文   时间:2015-04-13 15:57:47    阅读次数:100
HashMap实现原理及源码分析
在数据结构与算法中,给我们介绍了常用的几种数据结构:数组,链表,哈希表。 数组结构:其在内存分配是一段连续的内存空间,可能会占用内存空间严重,空间复杂度很大,时间复杂度小,其优点是易于寻址,但是插入、删除困难。 链表结构:其在内存分配是一系列离散的内存空间,占用内存少,空间复杂度很小,时间复杂度很大,其优点是易于插入和删除,寻址困难。 哈希表:哈希表是集合数组和链表的存储结构,满足寻址方便,易于操作,占用内存空间较小,时间复杂度有较小。其例如下: ...
分类:其他好文   时间:2015-04-11 20:54:44    阅读次数:144
面试之常用算法总结
面试中常常会遇到算法的问题 而基础算法的考核离不开链表和二叉树,下面是对这两种数据结构常见问题的总结1、链表#include #include #include/* 链表的总结 插入 删除以及遍历 以及链表相关的应用 */// 链表的结构// 插入 若第一个节点为空则需啊替换 所以传递的参数必须是指针的指针 否则修改无效stru...
分类:编程语言   时间:2015-04-11 00:02:16    阅读次数:209
看数据结构写代码(35) 图的邻接矩阵表示法
杂谈:最近清明小长假,好好的放松了一下。节前 和 节后 都有点 松懈。不好,不好。贵在坚持。加油。 图的邻接矩阵表示法是用 两个数组 来表示 图的数据结构。一个是顶点数组,另一个是邻接矩阵数组。邻接矩阵 里存放着 顶点的关系。 用邻接矩阵表示图,在 看 顶点之间 是否有边,或者 求顶点的度等操作时比较简单。但空间浪费巨大,在插入,删除 顶点 和边 操作时 需要 移动大量数据,造成不便。所以在插...
分类:其他好文   时间:2015-04-08 15:11:05    阅读次数:131
优先队列和堆排序
优先队列和堆排序标签(空格分隔): 排序算法 数据结构优先队列和堆排序 优先队列 堆 1 基于堆的算法 初始化 自底向上堆化 自顶向下堆化 插入删除一项 2 堆排序 优先队列全部代码 1 优先队列普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (largest-in,first-...
分类:编程语言   时间:2015-04-08 10:59:15    阅读次数:214
【BZOJ3932】【CQOI2015】任务查询系统 可持久化线段树
题解: 首先肯定要用线段树。 如果没有强制在线,那么直接把询问排个序然后按秩插入、删除、查询。普通线段树就好了,但是这道题强制在线,就需要可持久化线段树了。 线段树的每个区间记录[x:这段区间有的权值总和]、[n:这段区间有多少个权值][x:这段区间有的权值总和]、[n:这段区间有多少个权值] 然后每个版本表示一个时间点的线段树。 这道题每个版本可能有多个节点被修改,所以我们可以先当成多...
分类:其他好文   时间:2015-04-08 10:56:19    阅读次数:168
C++实现的间接寻址
之前学过,数据描述方法中有公式化描述,链表描述,间接寻址和模拟指针,在之前已经将公式化描述和链表描述通过代码的形式展现出来了,现在贴出简介寻址的代码。其中简介寻址是融合了公式化描述和链表描述的有点,使用一个指针表来记录数据的位置,指针表相当于一个数组,这样在插入,删除的时候,其中的数据的位置并没有发生变化,而仅仅就是指针表的指向发生了变化,同时很多操作又能像公式化一样通过O(1)的复杂度进行操作。下...
分类:编程语言   时间:2015-04-07 17:39:00    阅读次数:114
数据结构c++实现之-------------栈
栈是在一端进行插入和删除的线性表。栈顶---允许插入、删除的这一端,栈顶的当前位置是动态变化的;不允许插入和删除的一端称为栈底,栈底是固定不变得,当表中无元素时称为空栈。对栈的常用操作有:栈 初 始 化: Init_Stack()初始条件:栈不存在操作结果:构造了一个空栈判 断 空:Empty_.....
分类:编程语言   时间:2015-04-06 11:23:44    阅读次数:150
JAVA的StringBuffer类
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操....
分类:编程语言   时间:2015-04-05 01:01:28    阅读次数:184
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!