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

专注东莞微信网站设计网站建设公司合同

专注东莞微信网站设计,网站建设公司合同,怎样咨询网络服务商,自己做小程序开个社区团购链表是一种常用的数据结构#xff08;如果不了解#xff0c;请先学习数据结构#xff09;#xff0c;由于c语言本身没有实现标准的链表库#xff0c;所以redis自己实现了一个双向链表。 双向链表在redis内部的使用非常的多#xff0c;几乎所有模块中都有用到。 下面看下它…链表是一种常用的数据结构如果不了解请先学习数据结构由于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.dnsts.com.cn/news/232160.html

相关文章:

  • 网站建设行业地位网页设计模板html代码教程
  • 厦门网站建设公二七网站建设
  • 网站二级域名设置wordpress 空白主题
  • 做外贸网站需要营业执照哈尔滨建设工程
  • 网站seo问题做衣服视频有些什么网站
  • 建设主管部门官方网站关键词优化软件有哪些
  • 辽宁城乡建设厅网站广西壮族自治区有几个市
  • 安监网站如何做紧急预案备案建设积分网站
  • 做图网站猎头公司前十名有哪些
  • 网站建设相关资讯拓者设计吧app
  • 工信部网站备案查询步骤服装网站html模板
  • 游戏网站开发具备网站建设制作放之
  • 在百度怎么创建自己的网站南阳网站网站建设
  • 本地的南通网站建设东莞建站网站
  • 北京网站建设公司册wordpress主题对应的插件
  • 广东省网站免备案wordpress 免费 主题
  • 建立网站内容医院美容网站建设
  • 如何把网页链导入wordpress深圳百度seo公司
  • 个人网站建设大全网页传奇开服表
  • 盐城网站建设服务新浪网站制作
  • asp网站默认后台大连网站网络公司
  • wordpress底部修改深圳短视频seo教程
  • 网站快速开发平台dns加网站
  • 制作小网站动漫制作专业累吗
  • 什么是网站二级目录枣强网站建设电话
  • 网页设计比较好的网站网站备案信息批量查询
  • 网站域名试用期卡盟网站制作
  • 贵安新区住房和城乡建设厅网站建站能赚钱吗
  • 长春seo网站排名优化济南互联网网络营销
  • 哪个公司网站备案快wordpress+订单号位数