基于链表的宿舍信息管理系统是一种数据结构,它允许动态地添加、删除和修改节点。在宿舍信息管理系统中,每个节点代表一个宿舍的信息,如宿舍号、楼层、房间号等。通过使用链表,我们可以实现对宿舍信息的灵活管理,例如根据宿舍号快速查找宿舍信息,或者根据楼层或房间号进行排序。
以下是一个简单的基于链表的宿舍信息管理系统的实现:
1. 定义Node类:
```java
public class Node {
private String roomNumber; // 宿舍号
private String floor; // 楼层
private String room; // 房间号
private int number; // 编号
public Node(String roomNumber, String floor, String room, int number) {
this.roomNumber = roomNumber;
this.floor = floor;
this.room = room;
this.number = number;
}
// getter and setter methods
}
```
2. 定义LinkedList类:
```java
import java.util.LinkedList;
public class LinkedList {
private Node head; // 头节点
public LinkedList() {
this.head = null;
}
// 添加节点到链表尾部
public void addNode(String roomNumber, String floor, String room, int number) {
Node newNode = new Node(roomNumber, floor, room, number);
if (head == null) {
head = newNode;
} else {
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
}
// 根据宿舍号查找宿舍信息
public Node findRoomByNumber(String roomNumber) {
Node current = head;
while (current != null) {
if (current.roomNumber.equals(roomNumber)) {
return current;
}
current = current.next;
}
return null;
}
}
```
3. 定义宿舍信息管理系统类:
```java
public class DormitoryInfoSystem {
private LinkedList linkedList; // 链表存储宿舍信息
public DormitoryInfoSystem() {
this.linkedList = new LinkedList();
}
// 添加宿舍信息
public void addDormitoryInfo(String roomNumber, String floor, String room, int number) {
linkedList.addNode(roomNumber, floor, room, number);
}
// 根据楼层查找宿舍信息
public Node findDormitoriesByFloor(String floor) {
Node current = linkedList.head;
while (current != null) {
if (current.floor.equals(floor)) {
return current;
}
current = current.next;
}
return null;
}
}
```
4. 使用示例:
```java
public class Main {
public static void main(String[] args) {
DormitoryInfoSystem system = new DormitoryInfoSystem();
system.addDormitoryInfo("01", "1", "A", 1);
system.addDormitoryInfo("02", "1", "B", 2);
system.addDormitoryInfo("03", "1", "C", 3);
system.addDormitoryInfo("04", "2", "D", 4);
system.addDormitoryInfo("05", "2", "E", 5);
Node found = system.findDormitoriesByFloor("1");
if (found != null) {
System.out.println("找到宿舍信息: " + found.roomNumber + ", " + found.floor + ", " + found.room);
} else {
System.out.println("未找到指定楼层的宿舍信息");
}
}
}
```
这个简单的基于链表的宿舍信息管理系统实现了添加、查找宿舍信息的功能。在实际使用中,可以根据需要扩展其他功能,如删除宿舍信息、按条件排序宿舍信息等。