004-双向链表

一、概念。

 

 

二、定义双向链表内部节点的数据结构。

 

三、定义双向链表的数据结构。定义了5个变量,first表示双向链表的头节点,last表示双向链表的尾节点,size表示双向链表的节点数量,modCount表示双向链表的修改次数。

SerialVersionUID表示双向链表的序列化号码。

 

四、主要操作。

   1、双向链表的大小。(直接返回成员变量size的值)

   

插入数据相关操作:

   2、双向链表的头部插入。(保存当前头节点,创建新节点,更新头节点,特殊情况的处理:空)

 

 

 ----------------------

 

----------------------

 

-----------------------------------------------------------------------------------------------------------------

 

   3、双向链表的尾部插入。

---------------------

 

---------------------

---------------------

 

 

------------------------------------------------------------------------------

 

   4、双向链表的指定位置的插入。(先检查指定位置这个参数合法性,然后找到指定位置处的元素,最后插入到该位置)

找到指定位置处的元素:

 

 

 

  更新数据相关操作:

  5、更新双向链表指定位置的元素。(先检查索引合法性,然后找到指定位置元素,最后更新)

 

 

 

查询数据的相关操作:

   6、获取双向链表指定位置的元素。

 

   7、获取双向链表头节点的元素。

 ----------------------

 

-----------------------

   8、获取双向链表尾节点的元素。

 

-----------------------

 

   10、获取双向链表指定元素的第一个索引。(不存在则返回-1)

 

   11、获取双向链表指定元素的倒数第一个索引。(不存在则返回-1)

 

   12、判断双向链表是否存在指定的元素。

 

 

 

 

删除数据的相关操作:

   13、删除双向链表的第一个节点。(如果头节点为空,则会抛出异常;返回头节点元素)

 

---------------------

 

   14、删除双向链表的最后一个节点。(如果头节点为空,则会抛出异常;返回尾节点元素)

 

   15、删除第一个包含指定元素的节点。(如果不存在该元素的节点,则返回false)

 

   15、删除指定位置的节点。

 

   16、删除头节点。(如果头节点为空,则会返回null,而不会抛出异常;否则返回删除的节点的元素)

 

   17、删除头节点。(如果头节点为空,则会返回null,而不会抛出异常;否则返回删除的节点的元素)

 

   18、删除尾节点。(如果头节点为空,则会返回null,而不会抛出异常;否则返回删除的节点的元素)

 

   19、删除头节点。

 

   20、删除指定元素的第一个节点。

 

   21、删除指定元素的倒数第一个节点。

 

   22、删除所有元素。

 

  双向链表转换成数组的操作:

   23、双向链表转换成数组。

 

   24、集合转换。(不懂这是干嘛的)

 

   2、双向链表的插入。

   2、双向链表的插入。

   2、双向链表的插入。

   2、双向链表的插入。

 

原文地址:https://www.cnblogs.com/igoodful/p/9111601.html