day5 循环链表

2019-05-11  本文已影响0人  coder_feng

循环链表分两种,一种是单向循环链表,另外一种是双向循环链表;分别如下图所示:

单向循环链表图 双向循环链表图

从图中我们可以看到,单向循环链表和单线链表相差不多,只是最后一个元素的指向不一样,单向链表指向的是null,单向循环链表指向的是第一个节点,而双向链表和双向循环链表也是存在指向不一样,双向链表的第一个节点的prev和最后一个节点的next指向都是null,而双向循环链表第一个节点的prev指向的是最后一个节点,而最后一个节点的next指向的是第一个节点,由此可得,在代码层面的修改,只要修改添加方法,和移除方法就可以了

单向循环添加元素方法add(int index,E element)

添加元素图

插入元素也需要分几种情况说明一下

从0到无:

从0到无图1 从0到无图2 从0到无图3 从0到无图4 从0到无图5

多元素插入index=0

多元素插入index=0图1 多元素插入index=0图2 多元素插入index=0图3 多元素插入index=0图3

1个元素起后面添加元素

后面添加元素图1 后面添加元素图2

好了,单向循环链表的添加方法到此结束,下面的单向链表的移除方法,还有双向循环链表的添加元素和移除元素方法,就只给出源码,至于思路,大家可以参考我的方式,画图思考一下,相差不多,但是画图麻烦,就不一一画上了,有兴趣自行参考吧

单向循环移除元素方法remove(int index)

移除元素

双向添加元素方法add(int index,E element)

双向添加元素方法add(int index,E element)

双向循环移除元素方法remove(int index)

双向循环移除元素方法remove(int index)
上一篇 下一篇

猜你喜欢

热点阅读