java如何用类实现链表

在Java中,可以使用类实现链表数据结构。链表是一种常见的线性数据结构,它由一系列的节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。以下是一种Java实现链表的方式,通过定义一个Node类作为节点,使用链表的头节点来管理整个链表:

public class Node {
    public int data; // 节点数据
    public Node next; // 指向下一个节点的指针
    public Node(int data) {
        this.data = data;
        this.next = null;
    }
}
public class LinkedList {
    private Node head; // 链表的头节点
    public LinkedList() {
        head = null;
    }
    // 在链表头部插入一个节点
    public void insert(int data) {
        Node newNode = new Node(data);
        newNode.next = head;
        head = newNode;
    }
    // 在链表中查找一个节点
    public Node find(int data) {
        Node current = head;
        while (current != null && current.data != data) {
            current = current.next;
        }
        return current;
    }
    // 在链表中删除一个节点
    public boolean delete(int data) {
        Node current = head;
        Node previous = null;
        while (current != null && current.data != data) {
            previous = current;
            current = current.next;
        }
        if (current == null) {
            return false; // 没有找到要删除的节点
        }
        if (previous == null) {
            head = current.next; // 删除头节点
        } else {
            previous.next = current.next; // 删除中间或尾部节点
        }
        return true;
    }
    // 输出链表中的所有节点
    public void display() {
        Node current = head;
        while (current != null) {
            System.out.print(current.data + " ");
            current = current.next;
        }
    }
}

在上述代码中,Node类表示链表的节点,每个节点包含一个数据元素和一个指向下一个节点的指针。LinkedList类表示链表数据结构,通过定义头节点来管理整个链表。可以通过insert方法在链表头部插入一个节点,通过find方法在链表中查找一个节点,通过delete方法在链表中删除一个节点,通过display方法输出链表中的所有节点。可以使用以下代码来测试上述链表实现:

public static void main(String[] args) {
    LinkedList list = new LinkedList();
    list.insert(1);
    list.insert(2);
    list.insert(3);
    System.out.println("链表中的节点:");
    list.display();
    System.out.println();
    Node node = list.find(2);
    if (node != null) {
        System.out.println("查找到节点:" + node.data);
    } else {
        System.out.println("未找到节点");
    }
    if (list.delete(2)) {
        System.out.println("删除节点成功");
        System.out.println("删除后链表中的节点:");
        list.display();
    } else {
        System.out.println("删除节点失败");
    }
}

在上述代码中,首先创建了一个LinkedList对象,然后通过insert方法向链表中插入三个节点,接着通过display方法输出链表中的所有节点。然后使用find方法查找一个节点,如果找到了则输出节点的值,否则输出未找到节点的提示。最后使用delete方法删除一个节点,如果删除成功则输出删除后链表中的所有节点,否则输出删除节点失败的提示。

 
  • 用类实现链表