Javaで連結リストを実装する方法を教えてください。
Java では、Node クラスを使用してリンク リスト ノードを定義し、LinkedList クラスを使用してリンク リストのさまざまな処理を実現します。
具体的な手順は以下のとおりです。
- 次のデータ構造を表すNodeクラスを作成します。Nodeはデータフィールドと次のNodeへのポインタを持ちます。次のサンプルコードを参照してください。
class Node {
int data;
Node next;
}
- LinkedListクラスを作成し、挿入、削除、検索、走査などの、連結リストのさまざまな操作を実装する。
class LinkedList {
Node head;
// 插入节点
public void insert(int data) {
Node newNode = new Node();
newNode.data = data;
newNode.next = null;
if (head == null) {
head = newNode;
} else {
Node last = head;
while (last.next != null) {
last = last.next;
}
last.next = newNode;
}
}
// 删除节点
public void delete(int data) {
if (head == null) {
return;
}
if (head.data == data) {
head = head.next;
return;
}
Node curr = head;
Node prev = null;
while (curr != null && curr.data != data) {
prev = curr;
curr = curr.next;
}
if (curr != null) {
prev.next = curr.next;
}
}
// 查找节点
public Node search(int data) {
Node curr = head;
while (curr != null && curr.data != data) {
curr = curr.next;
}
return curr;
}
// 遍历链表
public void printList() {
Node curr = head;
while (curr != null) {
System.out.print(curr.data + " ");
curr = curr.next;
}
System.out.println();
}
}
- LinkedListクラスを使って連結リストを操作する。
public class Main {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert(5);
list.insert(10);
list.insert(15);
list.printList(); // 输出:5 10 15
list.delete(10);
list.printList(); // 输出:5 15
Node node = list.search(15);
if (node != null) {
System.out.println("找到了节点:" + node.data);
} else {
System.out.println("没有找到节点");
}
}
}
基本的な連結リストを実装し、挿入、削除、検索などの操作を含み、必要に応じて拡張できます。