链表

it2023-07-15  73

定义

typedef struct ListNode { struct ListNode *prev; struct ListNode *next; void *value; } ListNode; typedef struct List { ListNode *head; ListNode *tail; unsigned long len; void *(*dup)(void *prt); void *(*free)(void *prt); void *(*match)(void *prt, void *key); }

可以看到,没有面向对象就只能用函数指针来实现method方法

特点

1,双向 2,无环 3,head, tail, len等快速查找等指针 4,通过函数指针来实现(不安全等)面向对象的多态

使用

1, list value 2,发布订阅(每个订阅者一个list) 3,慢查询,监视器 其实就是当作一个队列来用的

quicklist

redis 4.0引入了quick list,它是list 和ziplist的结合,list的节点就是ziplist,这样可以最大限度减少内存碎片

最新回复(0)