双链表
#include<stdio.h>
#include<stdlib.h>
typedef struct DNode{
int data;
struct DNode *prior ,*next;
}DNode,*DLinkList;
bool InitDList(DLinkList &L)
{
L = (DNode*)malloc(sizeof(DNode));
if(L == NULL)
return false;
L -> next = NULL;
L -> prior = NULL;
return true;
}
bool InsertNextDNode(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;
return false;
}
bool DeleteNextDNode(DNode *p)
{
if(p == NULL)
return false;
DNode *q = p -> next;
if(q == NULL)
return false;
p ->next = q ->next;
if(q->next != NULL)
q -> next -> prior = p;
free(q);
return true;
}
// while(p!=NULL)
// p=p->next;
int main()
{
...
...
return 0;
}