自己实现集合框架(九):循环单链表的实现
2017-05-31 00:00
176 查看
一. 什么是循环单链表?
循环单链表是指单链表的最后一个结点的next域指向单链表的头结点
head,使单链表成为环形结构。
1. 循环单链表
设rear是单链表的尾结点,
rear.next=head使得一条单链表成为循环单链表,如下图所示:
2. 空的循环单链表(空链表)
当head.next==head满足时,循环单链表为空,如下图所示:
二. 循环单链表的实现
1.定义循环单链表
可排序单链表类CircularSinglyLinkedList声明如下,它继承带头结点的单链表类
HeadSinglyLinkedList,二者相同的方法不再介绍,请参见之前的文章自己实现集合框架(七):带头结点单链表的实现,只是在尾插入元素,尾移除元素和清空元素的时候会有不一样的地方,也就是需要把尾结点的
next域指向
head结点,代码如下所示:
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(),代码如下:
三.测试
测试代码如下所示:运行效果如下图所示:
四.源代码示例
相关文章推荐
- 自己实现集合框架(十三):链式栈的实现
- 自己实现集合框架(十二):顺序栈的实现
- java8集合框架LinkedList类实现自己简单的理解
- 自己动手实现集合框架类(三)之HashMap
- 自己实现集合框架(七):带头结点单链表的实现
- 自己动手实现集合框架类(一)之ArrayList
- 自己实现的集合框架
- 自己实现集合框架(五):利用单链表解决约瑟夫环问题
- 自己动手实现集合框架类(四)之LinkedHashMap
- 自己实现集合框架(六):实现单链表逆转
- 自己实现集合框架(十):双链表的实现
- [JAVA]集合框架之自己实现一个具有基本增查删改功能的ArrayList
- 自己实现集合框架(八):可排序单链表的实现
- 自己实现集合框架(十一):栈接口定义
- 实现自己的拦截器框架
- JDK集合分析Set和Map的关系(自己实现Set到Map的扩展)
- 自己实现一个js框架(二)
- 【迭代器】自己写一个集合实现Iterable迭代功能
- 自己实现下载框架(三)
- 开源自己实现一个.net rpc框架 - Machete.Rpc