HashMap的底层实现都是数组+链表结构实现的,添加、删除、获取元素都是先计算hash值,根据hash值和table.length计算出index也就是table的数组的下标,然后进行相应的操作。 不过HashMap和HashTable计算hash的方法不同: HashMap是直接用key的has... ...
分类:
其他好文 时间:
2016-11-08 01:53:25
阅读次数:
178
大话数据结构存放线性表数据空间一段连续的存储单元,需预分配存储空间,元素个数受限一组任意的存储单元,反, ,反时间查O(1)-O(n)增删O(n)-O(1)APP0:在游戏开发中,用户注册信息,多读取--玩家武器装备列表,随时增删1:当线性表元素个数变化较大或未知时。 ...
分类:
其他好文 时间:
2016-11-04 01:15:34
阅读次数:
125
/*单链表的练习-头插法*/
/*单链表由头结点就可以唯一确定*/
#include<malloc.h>
#include<stdio.h>
#include<stdlib.h>
//定义单链表结构
typedefstructNode{
intdata;//数据域
Node*pNext;//指针域
}NODE,*PNODE;
PNODEcreate_list(void);//创建链表
vo..
分类:
其他好文 时间:
2016-11-03 03:15:58
阅读次数:
280
静态链表便于在不设指针类型的高级语言使用链表结构,静态链表用数组描述,数组的一个分量表示一个结点,同时用游标(指示器cur)代替指针来表示结点在数组中的相对位置。 另外我们对数组第一个和最后一个元素作为特殊元素处理,不存数据。数组的第一个元素,即下标为0的元素的cur存放备用链表的第一个结点的下标, ...
分类:
编程语言 时间:
2016-10-29 21:38:32
阅读次数:
165
链表(3) 链表(2)简单讲述了一种Linux通用的链表结构,准确的说一个双向链表描述的双端队列,其实nginx中单向链表ngx_list_t和双向链表ngx_queue_t是分开定义的。我们在这里只讲双向队列的原因是因为实际项目中只用到了双向链表。 nginx中关于ngx_queue_t的典型应用 ...
分类:
其他好文 时间:
2016-10-15 17:03:49
阅读次数:
172
1~~特点:用一维数组来描述线性表,用游标代替指针指示节点在数组中的相对位置。不设“指针”类型的高级语言中适用链表结构。 2~~线性表的静态链式存储结构 二、循环链表 所谓循环,就是到尾结点,没有空指针,尾结点反而指向了头结点,成环,说白了,就是尼玛头尾张一起了。那么从环中的任意一个结点都能达到表里 ...
分类:
其他好文 时间:
2016-10-05 17:39:59
阅读次数:
250
12.单链表排序 思路: 参见基本函数13://冒泡排序链表,具体的做法是“狸猫换太子”,即只交换节点中的值,对链表结构不做改动。 void sortList(Node*& Head); ...
分类:
编程语言 时间:
2016-09-30 07:43:25
阅读次数:
174
1.概念 上一个文章里我们已经了解到链表结构,链表的特点是长度不固定,不用担心插入新元素的时候新增位置的问题。插入一个元素的时候,只要找到插入点就可以了,不需要整体移动整个结构。 这里我们了解一下双向链表的结构。尽管从链表中头节点遍历到尾节点很容易,但是反过来,从后向前遍历就没有那么简单。通过给No ...
分类:
编程语言 时间:
2016-09-22 01:06:34
阅读次数:
210
存储类别 通过上面的对比,可以得出一些经验性的结论: 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜采用单链表结构。 当线性表中的元素个数变化较大或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。而如果事先知道线性表的大致 ...
分类:
其他好文 时间:
2016-09-21 17:32:02
阅读次数:
323
1.概念 上一个博文我们讲到链表,其中有一个方法remove()是暂时注释的,这个方法有点复杂,需要添加一个Previous()方法找到要删除的元素的前一个节点,这一个博文我们来分析一下这个remove()方法。 从链表中删除节点的时候,需要先找到这个待删除节点的前面的节点。找到这个节点之后修改它的 ...
分类:
编程语言 时间:
2016-09-20 00:21:29
阅读次数:
215