美文网首页
单链表的Java实现

单链表的Java实现

作者: L_live | 来源:发表于2018-10-13 11:07 被阅读0次

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针实现的。链表由一系列结点组成,结点可以在运行时动态生成,而且由于没有闲置的内存,因此空间效率比数组高。其插入操作可达到O(1)复杂度,但是查找或者访问特定的结点复杂度是O(n)。

链表的实现可以是单向链表或者双向链表,LinkedList的底层就是双向链表,本文介绍单向链表的简单操作。

1.内部类声明LinkNode节点,其中需要有节点数据的声明以及下一个节点的引用声明。

2.在MyLink类中声明head头节点,初始值为null。

3.add()方法实现,每次添加都需要new一个节点,将数据封装进节点,下个节点的引用设为null。然后判断头节点是否为null,如果是说明链表是空链表,直接将当前节点设置为头节点。头节点非空的情况下,需要遍历整个链表,找到尾节点,添加节点。找到尾节点,将其对下一个节点的引用设置为新节点就可以了。其中注意节点的遍历,设置一个中间量temp引用头节点head,对其进行操作,temp=temp.next,这样便不会影响原来的head节点。

4.delete()方法实现,根据数据删除节点需要涉及到前向节点的操作,头节点没有前向节点需要单独处理。如果删除的是头节点的数据,直接将下一个节点设置为头节点。不是头节点的情况下,需要遍历找到此节点的位置。如果找到的数据和当前节点的下一个节点数据匹配,直接将当前节点对下一个节点的引用指向再下一个节点。其中设计巧妙的地方在于,需要当前节点和第二个后项节点产生关系,所以判断数据data==temp.next.data为下一个节点数据的判断,然后temp.next==temp.next.next就可以使当前节点和第二个后项节点产生关系。巧妙处还在于直接避开了头节点和尾节点,尤其是尾节点,虽然不在while循环中,但是操作了尾节点。

5.根据索引,查找索引处的数据。链表不支持随机访问,索引访问和数组不一样,是依次查找,直到索引处将数据返回。

6.toString()方法实现,使用StringBuilder拼接字符串,遍历循环就可以了。

相关文章

  • 链表

    单链表 C实现 Java实现 双链表 C实现 Java实现

  • 数据结构 | 其二 链表

    冰河winner - 数据结构之链表 2.1 单向链表 数据结构(一) 单链表的实现-JAVA 2.2 双端链表 ...

  • Message.obtain()中的单链表栈缓存

    Message.obtain()中的单链表栈缓存 Android中的Message.java用单链表实现了一个si...

  • 线性表之单链表实现

    线性表之单链表实现 实现单链表的初始化、插入、删除等基本运算 实现单链表的输入、输出运算 实现单链表的逆置、归并、...

  • 链表

    一、单向链表 单向链表的普通实现 Java实现: Kotlin实现: 单向链表的递归实现 Java实现: 二、双向...

  • Java实现单链表

    链表的结构相信大家都已经理解,这次简单的实现一个单链表,以及其中的操作 第一步 定义节点类 其中定义泛型约束 以及...

  • Java实现单链表

    一、单链表简介 概念介绍链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元...

  • 25_静态单链表的实现

    关键词: 单链表的一个缺点、静态单链表设计思路、静态单链表的继承层次结构、静态单链表的实现思路、静态单链表的实现 ...

  • 单链表的Java实现

    链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针实现的。链表由一系列结点组成...

  • 单链表 & 双链表& 单向循环链表的实现

    单链表 具体实现: 双链表 代码实现: 单向循环链表的实现 代码实现:

网友评论

      本文标题:单链表的Java实现

      本文链接:https://www.haomeiwen.com/subject/cuxoaftx.html