typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
//初始化循环单链表
bool InitList(LinkList &L){
L = (LNode *)malloc(sizeof(LNode));
if(L==null)
return false;
L->next = L;
return true;
}
//判空
bool Empty(LinkList L){
if(L->next == L)
return true;
else
return false;
}
//判断是否为表尾结点
bool isTail(LinkList L, LNode *p){
if(p->next == L)
return true;
else
return false;
}
--------------------------------------------------------------------------------
typedef struct DNode{
ElemType 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;
}
//判断是否为表尾结点
bool isTail(LinkList L, LNode *p){
if(p->next == L)
return true;
else
return false;
}
//双链表的插入
bool InsertNextDNode(DNode *p, DNode *s){
s->next = p->next;
p-next-prior = s;
s->prior = p;
p->next = s;
}
//删除
bool DeleteNextDNode(DNode *p, DNode *s){
p->next = q->next;
q->next-prior = p;
free(q);
}
2021-09-28循环单双链表
最新推荐文章于 2022-10-24 23:12:53 发布