双链表的插入和删除节点元素
#include<stdio.h>
#include<stdlib.h>
typedef struct DNode{
int data;//节点的数据
struct DNode *prior,*next;//节点的前驱和后继
}*DLinklisk;
DLinklisk InitDLinklisk(DLinklisk &DL);
DLinklisk DeleyData(DLinklisk &DL,int p)
DLinklisk DL;
int main(){
return 1;
}
//fun:初始化一个头结点
//Brief:链表指针
//return:指针
DLinklisk InitDLinklisk(DLinklisk &DL){
DLinklisk TempP;
TempP = DL;
//给头结点分配空间
DL=(DLinklisk)malloc(sizeof(DNode));
TempP->data=0;//存链表的数量
TempP->next=NULL;
TempP->prior=NULL;
return TempP;
}
//fun:插入一个结点,链表多个元素 ,两个元素之间
//Brief:链表指针,插入的元素
//return:指针
DLinklisk DLInsertData(DLinklisk &DL,int p,int e) {
DLinklisk Temp;
DLinklisk s;
Temp=DL;
//申请的新节点
s=(DLinklisk)malloc(sizeof(DNode));
s->data=e;
for(int i=0;i<p-1;i++){
Temp=Temp->next;
}
s->next=Temp->next;
s=Temp->next->prior;
s->prior=Temp;
Temp->next=s;
return Temp;
}
//fun:链表中的两元素之间删掉一个数值
//brief:
//return:
DLinklisk DeleyData(DLinklisk &DL,int p){
DLinklisk Temp;
Temp=DL;
for(int i=0;i<p-1;i++){
Temp=Temp->next;
}
DLinklisk DeleyLoc=Temp->next;//要删掉的元素
Temp->next= DeleyLoc->next;
DeleyLoc->prior=Temp;
free(DeleyLoc);
}