这是系列文章,每篇文章末尾均附有源代码地址。目的是通过模拟集合框架的简单实现,从而对常用的数据结构和
java
集合有个大概的了解。当然实现没有java
集合的实现那么复杂,功能也没有那么强大,但是可以通过这些简单的实现窥探到底层的一些共性原理。
一. 算法描述和实现
关于什么是约瑟夫环的问题请参考前面的文章自己实现集合框架(三):利用顺序表解决约瑟夫环问题,在之前的文章中介绍了如何利用顺序表解决约瑟夫环的问题。在前面的基础上,利用单链表解决约瑟夫环很简单,只需要把自己实现集合框架(三):利用顺序表解决约瑟夫环问题中创建SeqList
对象的语句替换为如下创建SinglyLinkedList
对象语句,其余代码不变,则可求解约瑟夫环问题。
this.seqList = new SinglyLinkedList<String>();// 单链表元素类型是字符串
执行new Josephus(5,2).sentence(1);
,单链表的变化过程如下图所示:
二.源代码示例
公众号ID:longjiazuoA

未经允许不得转载:人生设计师 » 自己实现集合框架:利用单链表解决约瑟夫环问题