Redis 源码阅读 - 链表
一般通过一个 adlist.h/list来保存一个链表。
typedef struct list {
    listNode *head;
    listNode *tail;
    unsigned long len;
    //节点值复制函数
    void* (*dup) (void *ptr);
    //节点值释放函数
    void (*free) (void *ptr);
    //节点值对比函数
    void (*match) (void *ptr, void *key);
} list;
它的特性有:
- 双端
- 无环
- O(1) 访问表头和表尾
- O(1) 获取长度
- 多态。使用 void*来保存节点值。
没啦。。