创建文件DLinkList.cpp,里面存入双链表的基本方法。
//双链表
#include <stdlib.h>
#include <stdio.h>
#define ElemType int
typedef struct DNode{
ElemType data;
struct DNode *prior,*next;
}DNode,*DLinkList;
//初始化双链表(带头结点)
bool InitDLinkList(DLinkList &L){
L=(DNode*)malloc(sizeof(DNode));
if(L==NULL) //内存不足,分配失败
return false;
L->prior=NULL;//头结点的指针一直指向NULL
L->next=NULL;
return true;
}
//尾插法建立双链表
void DList_TailInsert(DLinkList &L,ElemType a[],int n){
//把a[]中的元素插入到链表里,n表示长度
DNode *s,*r=L;//r为表尾指针
for(int i=0;i<n;i++){
s=(DNode*)malloc(sizeof(DNode));//创建新结点
s->data=a[i];
r->next=s;//把s插入到r后面
r=s;//r指向新的表尾结点