📅  最后修改于: 2023-12-03 15:22:40.639000             🧑  作者: Mango
本程序可以创建一个单向链表,并计算链表中节点的数量。
/**
* 单向链表节点类
*/
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类从控制台获取输入,输入了需要创建的节点数量和每个节点的值,并将每个节点添加到链表中。最后输出了链表中节点的数量。
本程序提供了一个简单的单向链表实现,并可以通过控制台输入动态创建链表。程序中的实现可以为学习数据结构和算法的初学者提供一些参考。