链表节点结构为
typedef struct listNode {
struct listNode* prev;
struct listNode* next;
void * value;
}
因为c语言没有泛型,以及偏底层的特性.数据结构底层存放的实际上都是无类型的指针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);//节点值对比函数
}
tips
first listNode的prev为null,而last listNode的next为null