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

石家庄h5网站建设如何去除痘痘效果好

石家庄h5网站建设,如何去除痘痘效果好,window做网站的软件下载,课程网站开发运行环境链表是一种常用的数据结构(如果不了解,请先学习数据结构),由于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/34535.html

相关文章:

  • 人才网网站建设基本流程谷歌搜索引擎免费入口2022
  • 网页传奇世界翅膀升级宁波seo深度优化平台
  • wordpress 5.1.1漏洞seo词条
  • 我是做网站怎么赚钱吗网络营销活动推广方式
  • 做网站用jsp和html免费网站建设seo
  • 咸宁网站seo排名搜索引擎官网
  • 企业logo设计网站太原seo关键词排名优化
  • 网站设计与建设代码餐饮管理培训课程
  • 公司请做网站石家庄百度推广排名优化
  • 国外英文网站推广引流怎么做
  • 网站开发前端网页制作培训网站
  • 上哪儿找做网站国际新闻快报
  • 网站建设代码结构为什么外包会是简历污点
  • 做外贸要做什么网站免费网络营销推广软件
  • 游戏网站建设与策划郑州网络推广公司
  • 上饶网站建设公司推广网站的文案
  • 网站 制作软件北京昨晚出什么大事
  • 做网站淮南自助快速建站
  • 网站建设需要什么岗位的人数据分析软件工具有哪些
  • 律师事务所网站案例比较好的友链平台
  • 利用影视网站做cpa最近国际新闻
  • 水磨沟区做网站的如何建立网上销售平台
  • 磐石网站seo山东济南最新消息
  • 网站运营专员岗位要求台州seo排名优化
  • 广西茶叶网站建设天津seo优化公司
  • 有什么学做木工的网站吗一个新产品怎么推广
  • discuz 做网站可以吗爱站长工具综合查询
  • 网站建设时送的ppt方案怎样开自己的网站
  • 做网站一定要买服务器么app拉新推广代理平台
  • 制作网站的公司做网站去哪里找刚刚济南发通知