1,双向链表相当于两个单向循环链表
2,双向链表的结点定义
struct DULNode
{
int data;
struct DULNode * prior;
struct DULNode * next;
};
typedef struct DULNode * linklist;
3,单循环链表的操作都适用于双循环链表
4,双循环链表的操作集合仍在头文件defs.h中
5,InitList操作,双循环链表初始化操作示意图
#include"defs.h"
void InitList(linklist *L) //改变头指针
{
*L = (linklist)malloc(sizeof(struct DULNode));
if (*L == NULL)
exit(0);
(*L)->next = *L;
(*L)->prior = *L;
}
6,ClearList操作
1 #include"defs.h"
2
3 void ClearList(linklist L)
4 {
5 linklist p = L->next; //p指向链表第一个元素
6
7 while (p