2016-08-08 ruki
TBOX中提供了各种列表操作: list: 元素在内部维护的双向链表 list_entry: 元素在外部维护的双向链表 single_list: 元素在内部维护的单向链表 single_list_entry: 元素在外部维护的单向链表 由于双链和单链的接口使用类似,这里主要就讲解双链的具体使用。 那什么是内部维护和外部维护呢? 简单地说: 外部维护:就是链表容器本身不存储元素,不开辟内存空间,仅仅是一个节点头,这样比较节省内存,更加灵活。(尤其是在多个链表间元素迁移的时候,或者多个链表需要统一内存池维护的时候)。 内部维护:就是链表容器本身回去开辟一块空间,去单独存储元素内 继续阅读 »
2019-01-06 Vaniot
redis https://github.com/antirez/redis/blob/5.0/src/adlist.h https://github.com/antirez/redis/blob/5.0/src/adlist.c 结构体的定义 结构体的实现,双向链表的相关定义于adlist.h中 节点: ```C++ typedef struct listNode { struct listNode *prev; //前一个节点 struct listNode *next; //后一个节点 void *value; //节点的值 } listNode; more 迭代器: C++ typedef s 继续阅读 »