循环链表就是链表首尾相接连成一个环,可以用单链表 和 循环链表来实现。
下面分别来看两种情况:
为了方便,我这里使用带头结点的单链表来构建循环链表,至于单链表带不带头结点的异同,我在前面的线性表之链表那篇文章中已经做过分析,就不再赘述。
单向循环链表是指在单链表的基础上,表的最后一个元素指向链表头结点,不再是为空。
所以判断是否是最后一个元素 的条件 也从 p->next != null; 变成了 p->next != head;
由于这个判断 条件的变化,相比于原来的单链表的程序,就会在有一些地方有所变化
双向链表的程序我在前一篇也写过,所以这里也不再赘述了
也是把最后一个元素的判断条件改为:P->next != h;
然后如果是在队尾插入或删除元素,就需要改变头指针的prior,
程序就都不写了,改动并不大,知道是什么意思即可