美文网首页
链表文件 adlist.c 阅读

链表文件 adlist.c 阅读

作者: tanxiaolong | 来源:发表于2017-10-30 12:16 被阅读13次

    有两个部分:adlist.h 和 adlist.c

    首先看看 adlist.h 里定义了哪些变量和函数,能了解个大概,就像目录一样。

    adlist.c 是具体的实现,一个关于链表的操作,而且是一个双向链表

    链表的话结构比较简单,总共有三个结构体:

    listNode 用来定义节点的结构:上一个、下一个、当前值

    listIter 用来定义迭代器的结构:下一个、方向(正向迭代还是逆向迭代)

    list 用来定义链表的结构:头、尾、长度、三个函数(复制、匹配、销毁)

    此外,还包含了大量的链表操作,常见的增删查改、还有迭代器、旋转的功能

    结构体的定义不错,比如list来说,里面不光包含了list的head和tail、len,还包含了一些函数的指针,比如dup(复制)、free(释放)、match(按key查找),这样的话就可以自定义这些函数的具体实现,更加灵活。

    typedef struct list {

        listNode *head;

        listNode *tail;

        void *(*dup)(void *ptr); 

        void (*free)(void *ptr);

        int (*match)(void *ptr, void *key);

        unsigned long len;

    } list;

    相关文章

      网友评论

          本文标题:链表文件 adlist.c 阅读

          本文链接:https://www.haomeiwen.com/subject/jmeppxtx.html