单向链表和双向链表的添加操作
2021/11/16 23:40:05
本文主要是介绍单向链表和双向链表的添加操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单向链表
单向链表,每次添加,向链表尾追加元素。第一个节点为head节点,每次添加的时候,找到最后一个节点,将最后一个节点的next指向新添加的元素。
先拿到head节点,每次只需要通过next,就能找到下一个节点
public class SingleLinkedList<E> { // 头结点 Node head; // 最后一个节点 Node last; public void add(E e) { Node node = new Node(null, e, null); // 头结点为空,说明还没有添加过元素 if (head == null) { head = node; } else { // 最后一个节点的next指向新节点 last.next = node; } // 新节点变为last last = node; } private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } } } class Demo1 { public static void main(String[] args) { SingleLinkedList<String> list = new SingleLinkedList<>(); list.add("A"); list.add("B"); list.add("C"); System.out.println(); } }
单向链表,添加元素后,数据结构如下:
双向链表
双向链表,添加元素的时候,向末尾追加。保证前一个元素的next指向下一个元素,下一个元素的pre指向上一个元素。first记录一个元素,last记录最后一个元素。
public class DoubleLinkedList<E> { Node first; Node last; public void add(E e) { Node node = new Node(null, e, null); // 头结点为空,说明还没有添加过元素 if (first == null) { first = node; } else { node.prev = last; // 最后一个节点的next指向新节点 last.next = node; } // 新节点变为last last = node; } private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } } } class Demo2 { public static void main(String[] args) { DoubleLinkedList<String> list = new DoubleLinkedList<>(); list.add("A"); list.add("B"); list.add("C"); System.out.println(); } }
双向链表,添加元素后,数据结构如下:
这篇关于单向链表和双向链表的添加操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南