循环单链表
typedef struct LNode{
ElemType data;
strcut 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){
return (L->next==L)
}
bool isTail(Linklist L,LNode *p){
if(p->next==L)
return true;
else
return false;
}
循环双链表
typedef strcut DNode{
ElemType data;
struct DNode *prior,*next;
}DNode,*DLinkList;
bool InitList(LinkList &L){
L=(DNode *)malloc(sizeof(DNode));
if(L==NULL)return false;
L->prior=L;
L->next=L;
return true;
}
bool Empty(DLinkList L){
return (L->next==L)
}
bool isTail(DLinkList L,DNode *p){
return (p->next==L)
}