双链表
原创
©著作权归作者所有:来自51CTO博客作者CherriesOvO的原创作品,请联系作者获取转载授权,否则将追究法律责任
#include<stdio.h>
#include<stdlib.h>
//双链表的定义
typedef struct DNode{
int data;
struct DNode *prior,*next;
}DNode,*DLinklist;
//双链表初始化
bool InitDLinklist(DLinklist &L){
L=(DNode *)malloc(sizeof(DNode)); //创建头结点
if(L==NULL){ //内存已满
return false;
}
L->prior=NULL;
L->next=NULL;
return true;
}
//插入(在p后面插入s)
bool InsertNextDNode(DNode *p,DNode *s){
p->next=s->next;
if(p->next!=NULL){
p->next->prior=s;
}
s->prior=p;
p->next=s;
return true;
}
//删除删除p后面的q
bool DeleteNextDNode(DNode *p,DNode *q){
p->next=q->next;
if(q->next!=NULL){
q->next->prior=p;
}
free(p);
return true;
}
int main(){
}