双向链表的一般数据结构:typedef struct link{L *next, L *prev, int data}L,链表头:head 尾:tail,若tail->next = head,head->prev = tail,则为双向循环链表,否则只为双向链表同理,单向链表:typedef struct link{L *next, int data}L; 头: head, 尾:tail,若tail->next = head,则为单向循环链表,否则为单向链表