其他分享
首页 > 其他分享> > 双向链表、循环链表、双向循环链表的基本操作

双向链表、循环链表、双向循环链表的基本操作

作者:互联网

一、双向列表

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