typedef struct listNode { struct listNode *prev; // 前置节点 struct listNode *next; // 后置节点 void *value; // 值 }
typedef struct list { listNode *head; // 表头 listNode *tail; // 表尾 unsigned long len; // 节点数量 void *(*dup)(void *ptr); // 节点值复制函数 void *(*free)(void *ptr); // 节点值释放函数 int (*match)(void *ptr, void *key); // 节点值对比函数 }