双向链表、循环链表、双向循环链表的基本操作
作者:互联网
一、双向列表
1、定义
在双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前驱,可如下描述
#include <bits/stdc++.h>
//函数状态码定义
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef ?? ElemType;
typedef struct DuLNode
{
ElemType data; // 数据域
struct DuLNode *prior; // 指向前驱的指针域
struct DuLNode *next;// 指向后继的指针域
}DuLNode,*DuLinkList;
1、双向链表的插入
Status ListInsert_Dul(DuLinkList& L,int i,int e)
{
DuLinkList p=L;
int j=0;
while(p&&j<i-1)
{
p=p->next;
j+=1;
}
if(!p||j>i-1) return ERROR;
DuLinkList r;
r=(DuLinkList)malloc(sizeof(DuLNode));
r->data=e;
r->prior=p;r->next=p->next;
p->next->prior=r;p->next=r;
return OK;
}
2、双向链表的删除
Status ListInsert_Dul(DuLinkList& L,i
标签:DuLinkList,next,链表,循环,双向,DuLNode,define 来源: https://blog.csdn.net/fighting123678/article/details/82704784