}
void insertNode(DListNode *p, int value)
{
DListNode *node =new DListNode();
node->value=value;
DListNode *next = p->next;
p->next=node;
node->pre=p;
node->next=next;
if(next!=NULL)
next->pre=node;
}
void deleteList(DListNode *head,DListNode *p)
{
if(p->next!=NULL)
{
DListNode *pNext=p->next;
p->next=pNext->next;
pNext->next->pre=p;
p->value=pNext->next->value;
delete pNext;
pNext=NULL;
}
else if(head==p)
{
head=head->next;
head->pre=NULL;
delete p;
p=NULL;
}
else
{
while(head->next!=p)
head=head->next;
head->next=NULL;
delete p;
p=NULL;
}
}
void main()
{
int data[]={1,2,3,4,5,6,7};
int N = sizeof(data)/sizeof(int);
DListNode *head=createDListNode(data,N);
printList(head);
insertNode(head,8);
printList(head);
deleteList(head,head);
printList(head);
deleteList(head,head->next);
printList(head);
}