c# 环形链表的实现(详细过程)
环形链表不过是在之前的单链表上做了一点点的改变(使单链表的首尾相连接)
如图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200630170313246.png)
一.首先先定义一个Node(结点)类
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200630170429237.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p6enNzczEyMzMzMw==,size_16,color_FFFFFF,t_70)
二.定义链表linklist类
firstNode表示第一个节点
listNode表示最后一个节点
我们要向环形链表中存数据,就要从最后一次存的位置继续添加元素,添加的元素又需要指向第一个元素,每次添加元素时记录一下这个位置,下一次就从这个位置继续添加元素
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020063017052249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p6enNzczEyMzMzMw==,size_16,color_FFFFFF,t_70)
完成后测试
这里循环1000次来测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200630170926418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p6enNzczEyMzMzMw==,size_16,color_FFFFFF,t_70)
输出的结果
我们可以看到循环到最后一个元素时又会回到第一个元素
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200630171039426.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p6enNzczEyMzMzMw==,size_16,color_FFFFFF,t_70)