复制
收藏
提问
简洁
用java,学生成绩放在头结点为head开始的单链表中,现查找序号为i的学生成绩
1周前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
在Java中,查找单链表中序号为i
的学生成绩可以通过遍历链表来实现。假设链表的每个节点包含学生的成绩信息,并且链表的头结点为head
。以下是一个示例代码,展示了如何查找序号为i
的学生成绩。
class StudentNode {
String serialNo; // 学号
int score; // 成绩
StudentNode next; // 指向下一个节点的指针
public StudentNode(String serialNo, int score) {
this.serialNo = serialNo;
this.score = score;
this.next = null;
}
}
public class StudentScoreManager {
public static int findScoreByIndex(StudentNode head, int i) {
StudentNode current = head;
int index = 0;
// 遍历链表,直到找到序号为i的节点
while (current != null && index < i) {
current = current.next;
index++;
}
// 如果找到了序号为i的节点,返回该节点的成绩
if (current != null && index == i) {
return current.score;
} else {
// 如果未找到,返回-1表示未找到
return -1;
}
}
public static void main(String[] args) {
// 创建链表节点
StudentNode head = new StudentNode("S001", 85);
head.next = new StudentNode("S002", 90);
head.next.next = new StudentNode("S003", 78);
// 查找序号为1的学生成绩
int score = findScoreByIndex(head, 1);
if (score != -1) {
System.out.println("序号为1的学生成绩是: " + score);
} else {
System.out.println("未找到序号为1的学生成绩。");
}
}
}
代码说明
- StudentNode类: 定义了链表的节点,包含学号
serialNo
、成绩score
和指向下一个节点的指针next
。 - findScoreByIndex方法: 该方法接收链表的头结点
head
和要查找的序号i
,通过遍历链表找到序号为i
的节点,并返回该节点的成绩。如果未找到,返回-1
。 - main方法: 创建了一个简单的链表,并调用
findScoreByIndex
方法查找序号为1的学生成绩。
输出结果
如果链表中存在序号为1的节点,程序将输出该节点的成绩;否则,输出未找到的提示信息。
注意事项
- 链表的序号从0开始计数,即
head
节点的序号为0。 - 如果链表中不存在序号为
i
的节点,findScoreByIndex
方法将返回-1
。
你觉得结果怎么样?