点击(此处)折叠或打开
-
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 *ptr);
-
void (*free)(void *ptr);
-
int (*match)(void *ptr, void *key);
- }list;
剩下的就是链表和链表节点的api了,见下表
函数 |
描述 |
listSetDupMethod | 将给定的函数设置为链表的节点值复制函数 |
listGetDupMethod | 返回链表当前正在使用的节点值复制函数 |
listSetFreeMethod | 将给定的函数设置为链表的节点值释放函数 |
listGetFree | 返回链表当前正在使用的节点释放函数 |
listSetMatchMethod | 将给定的函数设置为链表的节点值对比函数 |
listGetMatchMethod | 返回链表当前正在使用的节点值对比函数 |
listLength | 返回链表的长度 |
listFirst | 返回链表的表头节点 |
listLast | 返回链表的表尾节点 |
listPrevNode | 返回给定节点的前置节点 |
listNextNode | 返回给定节点的后置节点 |
listNodeValue | 返回给定节点目前正在保存的值 |
listCreate | 创建一个不包含任何节点的新链表 |
listAddNodeHead | 将一个包含给定值的新节点添加到给定链表的表头 |
listAddNodeTail | 将一个包含给定值的新节点添加到给定链表的表尾 |
listInsertNode | 将一个包含给定值的新节点添加到给定节点的之前或者之后 |
listSearchKey | 查找并返回链表中包含给定值的节点 |
listIndex | 返回链表在给定索引上的节点 |
listDelNode | 从链表中删除给定节点 |
listRotate | 将链表的表尾节点弹出,然后将被弹出的节点插入到链表的表头, |
listDup | 复制一个给定链表的副本 |
listRelease | 释放给定链表,以及链表中的所有节点 |