Redis数据结构--双端链表

97 阅读1分钟

目录

  • 前言
  • 链表和链表节点实现
  • API
  • 总结

前言

链表结构在很多高级语言中,都作为基本数据结构存在。它提供了一种高效的节点重排能力,但其查询能力确实有限的。


链表和链表节点实现

#链表节点结构
typedef struct listNode{
    //前置节点
    struct listNode *prev;
    //后置节点
    struct listNode *next;
    //节点值
    void *value;
}listNode;


#多个listNode通过prev和next节点相互连接在一起,从而形成链表
#链表结构
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;


API


总结