0
点赞
收藏
分享

微信扫一扫

004-双向链表

一、概念。

 

004-双向链表_双向链表

 

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

 

004-双向链表_双向链表_02

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

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

004-双向链表_指定位置_03

004-双向链表_指定位置_04

004-双向链表_抛出异常_05

004-双向链表_抛出异常_06

 

四、主要操作。

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

004-双向链表_双向链表_07

   

插入数据相关操作:

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

 

004-双向链表_抛出异常_08

 

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

004-双向链表_双向链表_09

 

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

 

004-双向链表_双向链表_10

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

004-双向链表_指定位置_11

 

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

004-双向链表_抛出异常_12

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

004-双向链表_指定位置_13

 

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

004-双向链表_指定位置_14

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

 

004-双向链表_抛出异常_15

 

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

004-双向链表_双向链表_16

 

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

004-双向链表_双向链表_17

004-双向链表_抛出异常_18

004-双向链表_指定位置_19

找到指定位置处的元素:

004-双向链表_抛出异常_20

004-双向链表_抛出异常_21

 

 

 

  更新数据相关操作:

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

004-双向链表_指定位置_22

 

 

 

查询数据的相关操作:

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

004-双向链表_指定位置_23

 

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

004-双向链表_双向链表_24

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

004-双向链表_指定位置_25

 

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

004-双向链表_指定位置_26

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

004-双向链表_指定位置_27

 

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

004-双向链表_双向链表_28

 

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

004-双向链表_抛出异常_29

 

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

004-双向链表_指定位置_30

 

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

004-双向链表_指定位置_31

 

 

 

 

删除数据的相关操作:

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

004-双向链表_双向链表_32

 

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

004-双向链表_指定位置_33

004-双向链表_指定位置_34

 

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

004-双向链表_指定位置_35

004-双向链表_抛出异常_36

 

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

004-双向链表_抛出异常_37

004-双向链表_指定位置_38

 

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

004-双向链表_双向链表_39

 

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

004-双向链表_双向链表_40

 

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

004-双向链表_指定位置_41

 

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

004-双向链表_抛出异常_42

 

   19、删除头节点。

004-双向链表_双向链表_43

 

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

004-双向链表_双向链表_44

 

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

004-双向链表_抛出异常_45

 

   22、删除所有元素。

004-双向链表_双向链表_46

 

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

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

004-双向链表_双向链表_47

 

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

004-双向链表_抛出异常_48

 

   2、双向链表的插入。

   2、双向链表的插入。

   2、双向链表的插入。

   2、双向链表的插入。

 


举报

相关推荐

0 条评论