📜  创建单向链表并计算节点数的Java程序(1)

📅  最后修改于: 2023-12-03 15:22:40.639000             🧑  作者: Mango

创建单向链表并计算节点数的Java程序

本程序可以创建一个单向链表,并计算链表中节点的数量。

使用说明
  1. 在Java环境中,拷贝下面的代码至一个Java文件中;
  2. 运行该Java程序,执行main方法;
  3. 遵循程序提示,输入需要创建的节点数量和节点值;
  4. 程序输出链表中节点的数量。
代码实现
/**
 * 单向链表节点类
 */
class SimpleNode {
    private int data; // 节点数据
    private SimpleNode next; // 链接下一个节点的指针

    /**
     * 构造函数,初始化节点数据
     * 
     * @param data 节点数据
     */
    public SimpleNode(int data) {
        this.data = data;
        this.next = null;
    }

    /**
     * 获取节点数据
     * 
     * @return 节点数据
     */
    public int getData() {
        return data;
    }

    /**
     * 获取链表中下一个节点的指针
     * 
     * @return 下一个节点的指针
     */
    public SimpleNode getNext() {
        return next;
    }

    /**
     * 设置链表中下一个节点的指针
     * 
     * @param node 下一个节点
     */
    public void setNext(SimpleNode node) {
        this.next = node;
    }
}

/**
 * 单向链表类
 */
class SimpleLinkedList {
    private SimpleNode head; // 链表头
    private int size; // 链表中节点数

    /**
     * 在链表末尾添加节点
     * 
     * @param node 需要添加的节点
     */
    public void addNode(SimpleNode node) {
        if (head == null) {
            head = node;
        } else {
            SimpleNode tempNode = head;
            while (tempNode.getNext() != null) {
                tempNode = tempNode.getNext();
            }
            tempNode.setNext(node);
        }
        size++;
    }

    /**
     * 获取链表中节点数
     * 
     * @return 链表中节点数
     */
    public int getSize() {
        return size;
    }
}

/**
 * 主程序
 */
public class Main {
    public static void main(String[] args) {
        SimpleLinkedList list = new SimpleLinkedList();

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入需要创建的节点数量:");
        int num = scanner.nextInt();

        for (int i = 0; i < num; i++) {
            System.out.println("请输入节点" + (i + 1) + "的值:");
            int value = scanner.nextInt();
            SimpleNode node = new SimpleNode(value);
            list.addNode(node);
        }

        scanner.close();

        System.out.println("链表中节点的数量为:" + list.getSize());
    }
}
代码说明

本程序中,首先定义了一个简单节点类SimpleNode,包含节点数据和链接下一个节点的指针两个成员变量。

定义节点类后,定义了一个单向链表类SimpleLinkedList,包含链表头和链表中节点数两个成员变量。在该链表类中,实现了在链表末尾添加节点以及获取链表中节点数的方法。

在主程序中,首先创建了一个单向链表对象list。然后通过Scanner类从控制台获取输入,输入了需要创建的节点数量和每个节点的值,并将每个节点添加到链表中。最后输出了链表中节点的数量。

总结

本程序提供了一个简单的单向链表实现,并可以通过控制台输入动态创建链表。程序中的实现可以为学习数据结构和算法的初学者提供一些参考。