复制
收藏
提问
简洁

用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的学生成绩。");
        }
    }
}

代码说明

  1. StudentNode类: 定义了链表的节点,包含学号serialNo、成绩score和指向下一个节点的指针next
  2. findScoreByIndex方法: 该方法接收链表的头结点head和要查找的序号i,通过遍历链表找到序号为i的节点,并返回该节点的成绩。如果未找到,返回-1
  3. main方法: 创建了一个简单的链表,并调用findScoreByIndex方法查找序号为1的学生成绩。

输出结果

如果链表中存在序号为1的节点,程序将输出该节点的成绩;否则,输出未找到的提示信息。

注意事项

  • 链表的序号从0开始计数,即head节点的序号为0。
  • 如果链表中不存在序号为i的节点,findScoreByIndex方法将返回-1
你觉得结果怎么样?
如何实现单链表的插入操作?
单链表的基本操作有哪些?
如何设计一个学生成绩管理系统?
如何插入新学生成绩?
如何删除指定学生成绩?
如何根据学号排序成绩?

以上内容由AI搜集生成,仅供参考

在线客服