程序如下 #include <stdio.h>typedef struct list{ int data; struct list *next;} LIST;int fun(LIST *h){ LIST *p; int t = 0;//初始值不给的话会出现很离奇的错误! p=h; while( p
分类:
其他好文 时间:
2016-03-20 01:56:44
阅读次数:
176
适配器:将一个通用的容器转换为另外的容器,所谓的容器,指的是存放数据的器具,像我们知道的顺序表和链表都是容器Container。举个例子解释一下吧,我们的电压都是220v,而像充电线就起到转换到合适的电压的作用。而这里,我们的主角就是将通用的链表结构转换为来实现队列Queue..
分类:
编程语言 时间:
2016-03-16 19:36:00
阅读次数:
353
大家都知道,HashMap采用链表解决Hash冲突,具体的HashMap的分析可以参考一下http://zhangshixi.iteye.com/blog/672697 的分析。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候就会产生死循环。但是,我好奇的是,这种闭合的链路是如何形成的呢
分类:
其他好文 时间:
2016-02-08 21:23:48
阅读次数:
312
link链表结构:lpushkeyvalue作用:把值插入到链接头部rpopkey作用:返回并删除链表尾元素rpush,lpop:不解释lpushxkeyvalue将值value插入到列表key的表头,当且仅当key存在并且是一个列表。和LPUSH命令相反,当key不存在时,LPUSHX命令什么也不做。返回值:LPUSHX命令执行之后,..
分类:
其他好文 时间:
2016-01-29 16:31:43
阅读次数:
198
LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明。 1.链表的概念 链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面简单就这四种链表进行图解说明。 1
分类:
其他好文 时间:
2016-01-28 21:11:35
阅读次数:
338
链接存储结构的线性表,它用一组地址任意的存储单元存放线性表中的数据元素,逻辑上相邻的元素在物理上不要求也相邻,不能随机存龋一般用结点描述:结点(表示数据元素)=数据域(数据元素的映象)+指针域(指示后继元素存储位置)。链表结构定义如下:typedefstructLinkNode
{..
分类:
其他好文 时间:
2016-01-22 18:37:34
阅读次数:
133
双向链表结构:定义一个如下结构体struct Node{ Object data; Node *next; Node *prev;};下面为list的具体实现:#include using namespace std;template class List{private: ...
分类:
其他好文 时间:
2016-01-20 20:38:37
阅读次数:
238
针对链表结构的Value,Redis在其官方文档中给出了一些实用技巧,如RPOPLPUSH命令,下面给出具体的解释。Redis链表经常会被用于消息队列的服务,以完成多程序之间的消息交换。假设一个应用程序正在执行LPUSH操作向链表中添加新的元素,我们通常将这样的程序称之为"生产者(Produc..
分类:
其他好文 时间:
2016-01-06 18:21:41
阅读次数:
170
约瑟夫环——围成一圈,定义一个数值K,从任意位置开始计数,每走K步删除当前位置结点,直到剩下最后一个结点,求最后一个结点//单链表结构以及Find函数参见2016-1-213:56发表博客SListNode*Joseph(SListNode*&pos,intK)//约瑟夫环
{
assert(pos);
if(K>0)
{
SListNode*..
分类:
编程语言 时间:
2016-01-05 01:35:22
阅读次数:
386
skip list的原理Java中的LinkedList是一种常见的链表结构,这种结构支持O(1)的随机插入及随机删除, 但它的查找复杂度比较糟糕,为O(n)。假如我们有一个有序链表如下,如果我们想找到值为59的节点,需要查找7次。怎么提高查询效率呢?通常的做法是使用二分法,但LinkedList的...
分类:
编程语言 时间:
2016-01-03 19:39:06
阅读次数:
363