首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]掌握单链表增删查改,Java编程轻松入门

发布于 2025-06-20 08:33:29
0
6

单链表是数据结构中的一种基本类型,它由一系列节点组成,每个节点包含数据和指向下一个节点的引用。在Java中,单链表是实现数据存储和操作的一种有效方式。本文将详细介绍单链表的增删查改操作,帮助读者轻松入...

单链表是数据结构中的一种基本类型,它由一系列节点组成,每个节点包含数据和指向下一个节点的引用。在Java中,单链表是实现数据存储和操作的一种有效方式。本文将详细介绍单链表的增删查改操作,帮助读者轻松入门Java编程。

单链表的基本概念

节点类(Node)

在Java中,我们可以定义一个Node类来表示单链表的节点。每个节点包含两个属性:数据和指向下一个节点的引用。

public class Node { private T data; private Node next; public Node(T data) { this.data = data; this.next = null; } // Getter and Setter methods public T getData() { return data; } public void setData(T data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; }
}

单链表类(SingleLinkedList)

单链表类负责管理链表中的节点。它提供增删查改等基本操作。

public class SingleLinkedList { private Node head; public SingleLinkedList() { this.head = null; } // 增加节点 public void add(T data) { Node newNode = new Node<>(data); if (head == null) { head = newNode; } else { Node current = head; while (current.getNext() != null) { current = current.getNext(); } current.setNext(newNode); } } // 删除节点 public void delete(T data) { if (head == null) { return; } if (head.getData().equals(data)) { head = head.getNext(); return; } Node current = head; while (current.getNext() != null) { if (current.getNext().getData().equals(data)) { current.setNext(current.getNext().getNext()); return; } current = current.getNext(); } } // 查找节点 public boolean contains(T data) { Node current = head; while (current != null) { if (current.getData().equals(data)) { return true; } current = current.getNext(); } return false; } // 修改节点 public void update(T oldData, T newData) { if (head == null) { return; } if (head.getData().equals(oldData)) { head.setData(newData); return; } Node current = head; while (current.getNext() != null) { if (current.getNext().getData().equals(oldData)) { current.getNext().setData(newData); return; } current = current.getNext(); } }
}

单链表操作实例

以下是一个使用单链表进行增删查改操作的简单示例:

public class Main { public static void main(String[] args) { SingleLinkedList list = new SingleLinkedList<>(); list.add(1); list.add(2); list.add(3); System.out.println("链表元素:"); Node current = list.head; while (current != null) { System.out.print(current.getData() + " "); current = current.getNext(); } System.out.println("\n删除元素2:"); list.delete(2); current = list.head; while (current != null) { System.out.print(current.getData() + " "); current = current.getNext(); } System.out.println("\n查找元素3:"); if (list.contains(3)) { System.out.println("元素3存在于链表中。"); } else { System.out.println("元素3不存在于链表中。"); } System.out.println("修改元素1为4:"); list.update(1, 4); current = list.head; while (current != null) { System.out.print(current.getData() + " "); current = current.getNext(); } }
}

通过以上示例,我们可以看到单链表在Java编程中的基本应用。掌握单链表的增删查改操作,有助于读者更好地理解数据结构,为后续学习更复杂的数据结构打下基础。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流