首页 > 代码库 > Redis实现原理(1)--链表
Redis实现原理(1)--链表
链表是Redis中使用非常广泛的一种数据结构,很多地方如List结构底层就是用链表实现的。
链表的定义在头文件adlist.h 中,很常见的双向链表,结构如下:
1 // 链表节点 2 typedef struct listNode { 3 struct listNode *prev; //指向前一个节点 4 struct listNode *next; //指向后一个节点 5 void *value; //值域 6 } listNode; 7 // 链表遍历迭代指针 8 typedef struct listIter { 9 listNode *next; //下一节点指针10 int direction; // 方向11 } listIter;12 13 // 链表结构14 typedef struct list {15 listNode *head; //链表头指针16 listNode *tail; //链表尾指针17 void *(*dup)(void *ptr); //节点值域复制函数指针18 void (*free)(void *ptr); //节点值域释放函数指针19 int (*match)(void *ptr, void *key); //节点值域比较函数指针20 unsigned long len; //链表长度21 } list;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。