#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
typedef int Elemtype;
typedef struct DLinkList
{
Elemtype data;
struct DLinkList *prior, *next;
} DLinkList;
bool InitDLinkList(DLinkList *L){
L = (DLinkList *)malloc(sizeof(DLinkList));
if (L == NULL)
return false;
L->prior = NULL;
L->next = NULL;
return true;
}
bool EmptyDLinkList(DLinkList *L){
if (L->next == NULL)
return true;
else
return false;
}
bool InsertNextDnode(DLinkList *p, Elemtype e){
DLinkList *s = (DLinkList *)malloc(sizeof(DLinkList));
if (p == NULL)
return false;
if (s == NULL)
return false;
s->data = e;
s->next = p->next;
if (p->next != NULL)
p->next->prior = s;
s->prior = p;
p->next = s;
return true;
}
bool DeleteDnode(DLinkList *p){
if (p == NULL || p->next ==NULL)
return false;
DLinkList *q = p->next;
p->next = q->next;
if (q->next != NULL)
q->next->prior = p;
free(q);
return true;
}