美文网首页
Redis之链表

Redis之链表

作者: slxixiha | 来源:发表于2021-08-20 07:52 被阅读0次

    链表的定义

    C语言也没支持list,redis只能自己去实现,实现代码如下:

    // adlist.h
    /* Node, List, and Iterator are the only data structures used currently. */
    
    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;
    

    注意:链表的head的prev和tail的next都是NULL,所以这里的链表是无环双向链表

    链表的结构图

    链表.PNG

    相关文章

      网友评论

          本文标题:Redis之链表

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