02.链表和链节点的实现

1. 链表 -- 简介:

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

typedel struct listNode {
    struct listNode prev; // 前置节点

    struct listNode next; // 后置节点

    void value;   // 节点的值

}listNode

  多个 listNode 可以通过 prev 和 next 组成双端链表:


linkNode.png

虽然仅仅使用多个 listNode 结构可以组成链表,但使用 alist.h/list 来持有链表的话,操作数据会更方便:

typedel struct list {
    listNode head; // 表头节点

    listNode tail; // 表尾节点

    unsigned long  len;   // 链表所包含的节点数量

    void (dup)(void ptr) ; // 节点复制函数

    void (free)(void ptr) ; // 节点值释放函数

    int (match ptr  void key); // 节点值对比函数

}list

你可能感兴趣的:(02.链表和链节点的实现)