#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
typedef struct DNode{
int data;
struct DNode *prior,*next;
}DNode,*DLinkList;
//初始化(循环双链表)
bool InitDLinkList(DLinkList &L){
L = (DNode *)malloc(sizeof(DNode));
if(L == NULL){
return false;
}
L->prior = L;
L->next = L;
return true;
}
//判空
bool Empty(DLinkList L){
if(L->next = L){
return true;
} else{
return false;
}
}
//判断结点p是否为循环双链表的表尾结点
bool isTail(DLinkList L,DNode *p) {
if(p->next == L){
return true;
}else{
return false;
}
}
//插入(循环双链表)(将s结点插入到p结点之后)
bool InsertNextDNode(DNode *p,DNode *s){
s->next = p->next;
p->next->prior = s;
p->next = s;
s->prior = p;
} //即使是表尾结点也同样适用
//删除结点(循环双链表)(删除p结点的后继结点)
bool deleteNextDNode(DNode *p){//好好想想为什么传参的时候没有传l链表L
DNode *q = p->next;
p->next = q->next;
q->next->prior = p;
free(q);
} //即使是表尾结点也是适用的
int main(){
DLinkList L;
InitDLinkList(L);
}
7.数据结构_循环双链表
最新推荐文章于 2024-10-04 18:59:43 发布