typedef struct{
int data;
DNode *prior,*next;
}DNode,*DLinkedList;
bool InitDLinkedList(DLinkedList *L)
{
*L=(DNode*)malloc(sizeof(DNode));
if(L==NULL)
return false;
(*L)->prior=NULL;
(*L)->next=NULL;
return true;
}
bool InsertDLinkedList(DNode *p,DNode *s)
{
if(p==NULL||s==NULL) return false;
s->next=p->next;
if(p->next!=NULL)
{
p->next->prior=s;
}
s->prior=p;
p->next=s;
}
bool DeleteDLinkedList(DNode *p)
{
if(p==NULL)
return false;
if(p->next!=NULL) {
DNode *s= p->next;
s->prior=p->prior;
p->prior->next=s;
}
else {
p->prior->next=NULL;
}
free(p);
return true;
}