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

[教程]Java单链表:入门必学的数据结构,轻松掌握编程技巧

发布于 2025-06-23 20:53:28
0
1418

单链表是Java中常见的一种线性数据结构,它由一系列节点(Node)组成,每个节点包含一个数据域和一个指向下一个节点的指针。与数组不同,链表中的元素在内存中不需要连续存储,这使得链表在插入和删除操作上...

单链表是Java中常见的一种线性数据结构,它由一系列节点(Node)组成,每个节点包含一个数据域和一个指向下一个节点的指针。与数组不同,链表中的元素在内存中不需要连续存储,这使得链表在插入和删除操作上具有更高的效率。

单链表的基本结构

节点类(Node)

单链表的每个节点包含两个部分:数据域和指针域。

public class Node { private T data; // 数据域 private Node next; // 指针域,指向下一个节点 public Node(T data) { this.data = data; this.next = null; } // Getter 和 Setter 方法 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; }
}

单链表类(SinglyLinkedList)

单链表类负责管理链表中的节点,包括插入、删除、查找等操作。

public class SinglyLinkedList { private Node head; // 链表头节点 public SinglyLinkedList() { this.head = null; } // 插入节点到链表头部 public void insertFirst(T data) { Node newNode = new Node<>(data); newNode.setNext(head); head = newNode; } // 删除链表中的节点 public void deleteNode(T data) { Node current = head; Node previous = null; while (current != null && !current.getData().equals(data)) { previous = current; current = current.getNext(); } if (current == null) { return; // 未找到要删除的节点 } if (previous == null) { head = current.getNext(); // 删除的是头节点 } else { previous.setNext(current.getNext()); // 删除中间节点 } } // 查找链表中的节点 public Node findNode(T data) { Node current = head; while (current != null && !current.getData().equals(data)) { current = current.getNext(); } return current; }
}

单链表的常见操作

创建链表

SinglyLinkedList list = new SinglyLinkedList<>();
list.insertFirst(3);
list.insertFirst(2);
list.insertFirst(1);

插入节点

list.insertFirst(0);

删除节点

list.deleteNode(2);

查找节点

Node node = list.findNode(1);
if (node != null) { System.out.println("找到节点:" + node.getData());
} else { System.out.println("未找到节点");
}

总结

单链表是Java中一种简单而实用的数据结构,通过掌握单链表的基本操作,可以轻松实现各种线性表的操作。在实际开发中,单链表常用于实现队列、栈等数据结构,并广泛应用于各种算法设计中。通过学习单链表,可以帮助你更好地理解数据结构和编程技巧。

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

452398

帖子

22

小组

841

积分

赞助商广告
站长交流