前面分析了HashMap的实现,我们知道其底层数据存储是一个hash表(数组+单向链表)。接下来我们看一下另一个LinkedHashMap,它是HashMap的一个子类,他在HashMap的基础上维持了一个双向链表(hash表+双向链表),在遍历的时候可以使用插入顺序(先进先出,类似于FIFO).....
分类:
其他好文 时间:
2015-12-19 20:23:04
阅读次数:
325
LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明。1.链表的概念链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面简单就这四种链表进行图解说明。 1.1...
分类:
其他好文 时间:
2015-12-15 00:51:21
阅读次数:
150
62.找出链表的第一个公共结点。题目:两个单向链表,找出它们的第一个公共结点思路:1.暴力法 但时间复杂度太高 o(n*m)2.如果两个链表有公共节点,则从该公共节点起,后面的节点均为公共的,即这两个链表在第一个公共节点交叉,然后形成一个Y字型,因为两个链表长度不一定一样,所以可以先求得他们的长度n...
分类:
其他好文 时间:
2015-12-04 20:26:52
阅读次数:
160
单向链表单链表有一个头节点head,指向链表在内存的首地址。链表中的每一个节点的数据类型为结构体类型,节点有两个成员:整型成员(实际需要保存的数据)和指向下一个结构体类型节点的指针即下一个节点的地址(事实上,此单链表是用于存放整型数据的动态数组)。链表按此结构对各节点的访问需从链表的头找起,后续节点...
分类:
其他好文 时间:
2015-11-21 18:24:31
阅读次数:
120
LRU是一种淘汰算法,淘汰那些最久没被访问过的节点,以提高cache命中率。网游后台cache server经常会用到。这里说一种O1算法。先明确两个操作相关的对象1. DataKey: cache数据的key2. IndexNode: 链表节点,内部有数据的indexlist(单向链表) 保存Da...
分类:
编程语言 时间:
2015-11-09 15:29:41
阅读次数:
220
C#学习单向链表和接口 IList 作者:乌龙哈里 时间:2015-11-04平台:Window7 64bit,Visual Studio Community 2015参考:MSDN 索引器(C# 编程指南)《数据结构(C#语言版)》下载When to use IEnumerable, IColle...
#include #include typedef struct List{ int data; struct List *next;}List;//创建循环单向链表n为长度List *list_create(int n){ List *head, *p; int i;...
分类:
其他好文 时间:
2015-11-03 22:52:25
阅读次数:
192
单(向)链表是链表的其中一种,具有单向性,因此访问的时候要从头部开始按顺序读取访问。链表是由一组任意存储单元(连续或者不连续都行)来存储线性表中的数据元素,如果节点的引用域只存储该节点直接后继的存储地址,具有此特征的链表称为单链表。*头引用放在fist中也就是第一个节点的位置,它是一个节点类型的变量...
前言单向链表查找下一个元素很方便,要查找上一个元素时,需要从头开始向下遍历,很是麻烦。如何解决这个问题呢?使用双向链表结构可以解决这个问题。双向链表在单向链表的基础上,增加一个指向上一个节点的指针,这就形成了双向链表结构。因增加了一个指针域,故需要占用更多的内存空间,换就话说,用空间换时间。现在硬件...
分类:
其他好文 时间:
2015-10-25 14:53:57
阅读次数:
202
单向链表:见 书 C primer plus (488 程序 17.2) 1 #include 2 #include /* has the malloc prototype */ 3 #include /* has the strcpy prototype ...
分类:
其他好文 时间:
2015-10-22 21:13:46
阅读次数:
245