用链表存储一个班的学生信息(最多100位学生),每个学生的信息有:学号,姓名,性别,联系电话和家庭住址。需要实现的功能有:新建学生信息链表,对学生信息进行增加、删除和查找。
时间: 2024-09-20 17:05:00 浏览: 29
为了用链表存储一个班级的学生信息,你可以创建一个名为`Student`的节点类,包含学号、姓名、性别、联系电话和家庭住址等属性。然后,设计一个`StudentList`类,它维护一个指向链表头节点的指针,并提供相应的操作函数。
```java
// 学生节点类
class Student {
int studentId;
String name;
String gender;
String phoneNumber;
String address;
// 构造函数
public Student(int id, String name, String gender, String phone, String addr) {
this.studentId = id;
this.name = name;
this.gender = gender;
this.phoneNumber = phone;
this.address = addr;
}
// getter和setter方法省略
}
// 学生列表类
class StudentList {
Node head; // 链表头节点
// 新建链表
void createList() {
head = null;
}
// 添加新学生
void addStudent(Student student) {
if (head == null) {
head = new Node(student);
} else {
Node current = head;
while (current.next != null && current.next.studentId < student.studentId) {
current = current.next;
}
current.next = new Node(student);
}
}
// 删除学生(基于学号)
void deleteStudent(int id) {
if (head == null) return;
if (head.studentId == id) {
head = head.next;
return;
}
Node current = head;
while (current.next != null && current.next.studentId != id) {
current = current.next;
}
if (current.next != null) {
current.next = current.next.next;
}
}
// 查找学生
boolean searchStudent(int id) {
Node current = head;
while (current != null) {
if (current.studentId == id) {
return true;
}
current = current.next;
}
return false;
}
// 隐藏的内部节点类
private class Node {
Student student;
Node next;
Node(Student s) {
this.student = s;
this.next = null;
}
}
}
```
阅读全文