java单链表学生系统
时间: 2023-09-28 11:09:56 浏览: 90
好的,我可以为您提供一个简单的Java单链表学生系统的代码实现,如下所示:
```java
import java.util.Scanner;
public class StudentLinkedList {
// 定义一个节点类
class Node {
String name;
int age;
int id;
Node next;
public Node(String name, int age, int id) {
this.name = name;
this.age = age;
this.id = id;
this.next = null;
}
}
Node head; // 链表头节点
public StudentLinkedList() {
head = null;
}
// 添加学生信息
public void addStudent(String name, int age, int id) {
Node newNode = new Node(name, age, id);
if (head == null) {
head = newNode;
} else {
Node temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = newNode;
}
}
// 根据学号查找学生信息
public void findStudent(int id) {
Node temp = head;
while (temp != null) {
if (temp.id == id) {
System.out.println("姓名:" + temp.name + ",年龄:" + temp.age + ",学号:" + temp.id);
return;
}
temp = temp.next;
}
System.out.println("未找到该学号的学生信息!");
}
// 删除学生信息
public void deleteStudent(int id) {
if (head == null) {
System.out.println("链表为空,无法删除学生信息!");
return;
}
if (head.id == id) {
head = head.next;
System.out.println("删除成功!");
return;
}
Node temp = head;
while (temp.next != null) {
if (temp.next.id == id) {
temp.next = temp.next.next;
System.out.println("删除成功!");
return;
}
temp = temp.next;
}
System.out.println("未找到该学号的学生信息,删除失败!");
}
// 显示所有学生信息
public void displayAll() {
if (head == null) {
System.out.println("链表为空,无法显示学生信息!");
return;
}
Node temp = head;
while (temp != null) {
System.out.println("姓名:" + temp.name + ",年龄:" + temp.age + ",学号:" + temp.id);
temp = temp.next;
}
}
// 主函数,测试代码
public static void main(String[] args) {
StudentLinkedList list = new StudentLinkedList();
Scanner scanner = new Scanner(System.in);
int id, age;
String name;
// 添加学生信息
System.out.println("请输入学生信息:姓名 年龄 学号(用空格隔开),输入0结束:");
while (true) {
name = scanner.next();
if (name.equals("0")) {
break;
}
age = scanner.nextInt();
id = scanner.nextInt();
list.addStudent(name, age, id);
}
// 显示所有学生信息
System.out.println("所有学生信息如下:");
list.displayAll();
// 查找学生信息
System.out.println("请输入要查找的学生学号:");
id = scanner.nextInt();
list.findStudent(id);
// 删除学生信息
System.out.println("请输入要删除的学生学号:");
id = scanner.nextInt();
list.deleteStudent(id);
// 显示所有学生信息
System.out.println("删除后所有学生信息如下:");
list.displayAll();
scanner.close();
}
}
```
这个程序可以让用户输入学生信息(包括姓名、年龄、学号),并添加到链表中;然后可以根据学号查找学生信息,删除学生信息,以及显示所有学生信息。
阅读全文