美文网首页
redis 内部数据结构(1.2)-双向链表

redis 内部数据结构(1.2)-双向链表

作者: 颜灏_2181 | 来源:发表于2017-03-24 20:07 被阅读0次

adlist.h/adlist.c

节点的数据结构:

typedef struct listNode {
    // 前置节点
    struct listNode *prev;
    // 后置节点
    struct listNode *next;
    // 节点的值
    void *value;
} listNode;
Paste_Image.png

list 数据结构

typedef struct list {
    // 表头节点
    listNode *head;
    // 表尾节点
    listNode *tail;
    // 链表所包含的节点数量
    unsigned long len;
    // 节点值复制函数
    void *(*dup)(void *ptr);
    // 节点值释放函数
    void (*free)(void *ptr);
    // 节点值对比函数
    int (*match)(void *ptr, void *key);
} list;
  • dup 函数用于复制链表节点所保存的值;
  • free 函数用于释放链表节点所保存的值;
  • match 函数则用于对比链表节点所保存的值和另一个输入值是否相等。
由 list 结构和 listNode 结构组成的链表

相关文章

网友评论

      本文标题:redis 内部数据结构(1.2)-双向链表

      本文链接:https://www.haomeiwen.com/subject/ugwxottx.html