图片均来自B站王道考研(侵删)
单链表.VS.双链表:
单链表:无法逆向检索,有时候不太方便
双链表:可进可退,存储密度更低一点
双链表:
1.初始化(带头结点)
typedef struct DNode{
//定义双链表节点类型
ElemType data; //数据域
struct DNode *prior,*next; //前驱和后继指针(prior.先前的)
}DNode,*DLinkList;
//初始化双链表
bool InitDLinkList(DLinkList &L){
L = (DNode *)malloc(sizeof(DNode)); //分配一个头结点
if(L==NULL) //内存不足,分配失败
return false;
L->prior = NULL; //头结点的prior永远指向NULL
L->next = NULL; //头结点之后暂时还没有结点