链表和链表节点的实现

2019-08-06  本文已影响0人  阳光课代表

数据结构

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

多个 listNode 可以通过 prev 和 next 指针组成双端链表, 如图 3-1 所示:


图 3-1

虽然仅仅使用多个 listNode 结构就可以组成链表, 但使用 list 来持有链表的话, 操作起来会更方便:

struct list {
    listNode *head; // 表头节点
    listNode *tail; // 表尾节点
    unsigned long len; // 链表所包含的节点数量
};

图 3-2 是由一个 list 结构和三个 listNode 结构组成的链表:


图 3-2

Redis 的链表实现的特性可以总结如下:

上一篇下一篇

猜你喜欢

热点阅读