链表提供了高效的节点重排,顺序性节点访问,并可以通过增删节点灵活调整链表的长度。链表是双向无环的。
1. 节点
typedef struct listNode{ //前置节点 struct listNode *prev; //后置节点 struct listNode *next; //节点的值 void *value; }
2. 外层封装
typedef struct list{ //表头节点 listNode *head; //表尾节点 listNode *tail; //链表所包含的节点数量 unsigned long len; //节点值复制函数 void *(*dup)(void *ptr); //节点值释放函数 void (*free)(void *ptr); //节点值对比函数 int (*match)(void *ptr, void *key); }
Redis链表的实现特性:
原文:https://www.cnblogs.com/walker993/p/14425627.html