循环链表是指在单链表的最后一个节点链域值不是NULL,而是指向头节点,整个链表形成一个环。h->next=h;
循环链表的操作和单链表基本一致,但是需要在算法中的循环条件p或者p->next是否为空改成是否等于头指针。
下面以循环链表中查找值为x的结点为例来讨论如何实现算法。
~~~
Lnode *get (Lnode *h ,elemtype x)
{
Lnode *p;
p=p->next;
while(p!=h&&x!=p->data)
p=p->next;
return p;
}
~~~