2.链表

2019-05-09  本文已影响0人  JarvisTH

一、链表和链表节点的实现

每个链表节点使用一个adlist.h/listNode结构表示:

typrdef struct listNode{
     //前置节点
     strcut listNode *prev;
    
      //后置节点
      struct listNode *next;
      
      //值
      void *value;
}listNode;

多个listNode可以组成双向链表。但使用adlist.h/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;
list结构和listNode结构构成的链表

Redis链表实现的特性:

上一篇 下一篇

猜你喜欢

热点阅读