zoukankan      html  css  js  c++  java
  • 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、双向链表的插入。

     

  • 相关阅读:
    Docker技术入门之---Docker核心概念:镜像、容器、仓库(2)
    Docker技术入门之---Docker安装(1)
    微信小程序自定义组件
    vue项目优化--使用CDN和Gzip
    小程序分包
    VUE--- browserHistory 和 hashHistory。
    vue-生成的css文件中背景url()图片路径问题
    vue异步组件
    Vue双向绑定原理及实现
    web-view小程序转发功能,web-view和小程序之间传参
  • 原文地址:https://www.cnblogs.com/igoodful/p/9111601.html
Copyright © 2011-2022 走看看