基本功能
1.初始化双向链表:带头结点
2.创建双链表:头插法
3.创建双向链表:尾插法
4.正向遍历链表
5.逆向遍历链表
6.按位序查找元素
7.按值查找元素
8.按位序插入
9.按位序删除
代码
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef int ElemType;
typedef struct DNode{
ElemType data;
struct DNode *prior,*next;
}DNode,*DLinkList;
bool InitDLinkList(DLinkList &L);//初始化双链表:带头结点
DLinkList List_HeadInsert(DLinkList &L);//创建双链表:头插法
DLinkList List_TailInsert(DLinkList &L);//创建双向链表:尾插法
void OutPutDList(DLinkList L);//正向遍历双向链表
void adverseOutPut(DLinkList L);//逆向遍历双向链表
DNode *GetElem(DLinkList L,int i);//按位序查找元素
DNode *LocateElem(DLinkList L,ElemType e);//按值查找元素
bool ListInsert(DLinkList &L,int i,ElemType e);//按位序插入
bool ListDelete(DLinkList &L,int i,ElemType &e);//按位序删除
//初始化双链表:带头结点
bool InitDLinkList(DLinkList &L){
L=(DNode *)malloc(sizeof(DNode));
if(L==NULL)return false;
L->prior=NULL;
L->next=NULL;
return true