当前位置: 首页 > news >正文

石家庄h5网站建设搜易网托管模式的特点

石家庄h5网站建设,搜易网托管模式的特点,java网站开发环境搭建,24小时学会网站建设下载链表是一种常用的数据结构(如果不了解,请先学习数据结构),由于c语言本身没有实现标准的链表库,所以redis自己实现了一个双向链表。 双向链表在redis内部的使用非常的多,几乎所有模块中都有用到。 下面看下它…

链表是一种常用的数据结构(如果不了解,请先学习数据结构),由于c语言本身没有实现标准的链表库,所以redis自己实现了一个双向链表。
双向链表在redis内部的使用非常的多,几乎所有模块中都有用到。
下面看下它的结构定义:

// 节点
typedef struct listNode {struct listNode *prev;struct listNode *next;void *value;
} listNode;// 迭代器
typedef struct listIter {listNode *next;int direction;
} listIter;// 双向链表
typedef struct list {// 链表头指针listNode *head;// 链表尾指针listNode *tail;// 复制void *(*dup)(void *ptr);// 释放void (*free)(void *ptr);// 对比int (*match)(void *ptr, void *key);// 元素个数unsigned long len;
} list;

listNode中的value定义为void *,所以它可以被用来存储任意类型的数据。而对于不同的数据,在处理时可能需要用到不同的函数,因此在list中定义了3个函数指针,分别对应不同类型数据的复制、释放和对比功能。当对value进行处理时,如果设置了函数指针,就有可能会调用它们进行相应处理。
比如在清空函数中:

void listEmpty(list *list)
{unsigned long len;listNode *current, *next;current = list->head;len = list->len;while(len--) {next = current->next;// 释放if (list->free) list->free(current->value);zfree(current);current = next;}list->head = list->tail = NULL;list->len = 0;
}

当 free 函数指针不为空时,会调用它释放value。而 dup 和 match 函数会分别在 listDup 和 listSearchKey 中使用。由于双向链表整体代码实现比较简单,因此其它代码也不作过多说明。
最后我们再简单看下迭代器:

// 迭代器
typedef struct listIter {listNode *next;int direction;
} listIter;/* Directions for iterators */
#define AL_START_HEAD 0
#define AL_START_TAIL 1

它由一个节点指针和迭代方向组成

  • direction为AL_START_HEAD,通过 ->next 往后迭代
  • direction为AL_START_TAIL,通过 ->prev 往前迭代

迭代器的相关函数:

// 创建迭代器
listIter *listGetIterator(list *list, int direction);
// 根据方向迭代
listNode *listNext(listIter *iter);
// 释放迭代器
void listReleaseIterator(listIter *iter);
// 重置迭代器到表头
void listRewind(list *list, listIter *li);
// 重置迭代器到表尾
void listRewindTail(list *list, listIter *li);
http://www.dt0577.cn/news/53606.html

相关文章:

  • 洛阳做网站公司哪家好seo日常工作内容
  • 织梦网站后台密码品牌公关
  • 装修公司加盟模式百度seo公司
  • 网站手机微信三合一怎么做泉州seo报价
  • 东营市住房和建设委员会网站百度推广费
  • 做运营需要知道素材网站百度竞价点击神器奔奔
  • 青岛的网站建设有没有免费的广告平台
  • xml网站地图格式网站网络推广运营
  • 东莞专业微网站建设简述网站推广的方法
  • 聚享游网站如何做推广湖南网站建站系统哪家好
  • 机械毕业设计代做网站网站推广途径和推广要点有哪些?
  • 广州响应式网站建设百度引擎入口
  • 株洲做网站优化友联互换
  • 怎么做网站二级页面抖音seo代理
  • 苏州网站建设万户seo网站整站优化
  • 网站建设中 模板怎么做信息流广告代理商
  • 郑州百度网站推广关键词免费
  • 珠海门户网站建设哪家专业想要网站导航正式推广
  • 祥云平台做的网站效果好各大搜索引擎网址
  • 建站之星免费个人博客网页制作
  • 杭州网站开发响应式seo长沙
  • 网站做图片网络推广的平台
  • 销售网站建设怎么做广告软文范例大全100
  • 外贸网站建设步骤网站怎么做推广和宣传
  • 网站制作一条龙个人能接广告联盟吗
  • 网站方案制作的培训长沙哪里有网站推广优化
  • 公司网站如何做seo怎么样关键词优化
  • 人大信息网站建设方案搜索关键词
  • 3g网站开发seo专业培训课程
  • h5网站开发流程seo技术分享