一. 什么是循环单链表?
循环单链表是指单链表的最后一个结点的next
域指向单链表的头结点head
,使单链表成为环形结构。
1. 循环单链表
设rear
是单链表的尾结点,rear.next=head
使得一条单链表成为循环单链表,如下图所示:
2. 空的循环单链表(空链表)
当head.next==head
满足时,循环单链表为空,如下图所示:
二. 循环单链表的实现
1.定义循环单链表
2. 循环单链表的插入
注意在尾插入的时候,需要把尾结点的next
域指向head
结点:this.rear.next = this.head;
3. 循环单链表的移除
注意在尾移除的时候,需要把尾结点的next
域指向head
结点:this.rear.next = this.head;
4. 清空循环单链表
清空循环单链表,需要执行this.head.next = this.head;
5. 重写toString()方法
由于循环单链表的最后一个结点的next
域不为空,需要重写toString()
,代码如下:
三.测试
测试代码如下所示:
运行效果如下图所示: