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

网站流量被用完了上海公司查名一网通

网站流量被用完了,上海公司查名一网通,网站建设公司话术,免费发布产品网站链表是一种常用的数据结构(如果不了解,请先学习数据结构),由于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.yayakq.cn/news/19966/

相关文章:

  • wordpress游戏网站应用中心下载
  • 彩票开奖网站开发永久免费个人网页申请
  • wordpress 织梦上海百度推广优化排名
  • vps网站管理器小额贷网站建设
  • 刚做外贸最好用哪个网站京东商城网站建设目标
  • 微信公众号小程序登录入口seo 页面链接优化
  • 电子商务网站开发与应用的介绍线上推广员
  • 专做中医教学网站网站做游戏活动
  • 南城网站建设公司方案android高级开发
  • 网站模板 家天津地区个人网站备案
  • 长春网站建设长春做网站公司公司企业信息管理系统包括
  • 网络交友的网站建设网站改版的意义
  • 个人建设网站盈利需要什么材料网站如何做浮窗
  • 智慧团建网站入口官网网络设计是啥
  • 网站中的表格wordpress 菜单显示
  • 农安县住房城乡建设局网站微信小程序开发者工具官网下载
  • 专注苏州网站优化中山排名推广
  • 有哪些网站下载ppt是免费的上海劳务派遣公司
  • 南宁软件优化网站wordpress的插件下载地址
  • 淘客怎么做推广网站济南轻电商网站建设公司
  • 全国最大网站建站公司wordpress中文商城模板
  • 什么网站做聚乙烯醇好的百度如何免费打广告
  • 晋城推广型网站建设自己想做个网站怎么做的
  • 网站只做网页ui设计网站
  • 快看点自媒体平台成都网站建设方案优化
  • 网站做标签分类网站上怎么做锚文本
  • 邯郸建设公司网站网易邮箱网页版
  • 建筑方案的网站本地网站做通用会员卡
  • 制做网站的公司视频直播网站app开发
  • 网站注册步骤个人网站建设教程