声明部分:
typedef struct Dnode
{
int data;
struct Dnode *prior, *next;
} Dnode, *DLinkList; // DLinkList 双链表
//以下操作均为带头结点的双链表
DLinkList CreateDLinkList(); //创建双链表
void DestoryDLinkList(DLinkList *L); //销毁双链表
int DListIsEmpty(DLinkList L); //判空:=0为空表,=1为非空表
Dnode *GetDListElem(DLinkList L, int index); //按位查找:按位序查找该结点的指针
int InsertNextDNode(Dnode *node, int elem); //后插法:在node指针所指的结点后插入一个新节点
int InsertPriorDNode(Dnode *node, int elem); //前插法:在node指针所指的结点前插入一个新节点
int DeleteDNode(Dnode *node); //删除指定节点,仅给定需要删除的结点的指针
int DeleteNextDNode(Dnode *node); //删除指定节点的后继节点
int DeletePriorDNode(Dnode *node); //删除指定节点的前驱节点
每个函数的具体定义:
创建双链表:
DLinkList CreateDLinkList()
{
DLinkList L = (Dnode *)malloc(sizeof(Dnode));
if (L == NULL)