2024C#面试真题:单向链表的查询、插入

一、题目

面试题:C#编程实现以下要求(不允许用封装方法,需要自己构建):

1. 依照数据,实现Student类

2. 实现单向链表类

类方法:

1) Student Get(int id); 根据学号查询,参数为int regID, 返回为Student对象

2) Student Locate(int pos); 根据链表位置查询,参数为int pos, 返回为Student对象

3) bool Insert(Student stu); 以学号为key升序插入链表,参数为Student对象,返回值为true/false

3.读取数据文件,格式化为Student对象,并添加到List里

4.根据学号,查询该学生信息

5.根据位置,查询该学生信息

数据文件内容(姓名,学号,成绩):

郑英,20216793,94

尹超,20196587,79

吴霞,20228110,92

贺勇,20206374,73

作答时长要求1h以内

二、参考答案(AI作答)

以下作答内容为AI作答,仅供参考,若对答案有异议,恳请评论区指出谢谢!

①学生实体类:

public class Student
{public string Name { get; set; }public int ID { get; set; }public int Score { get; set; }public Student(string name, int id, int score){Name = name;ID = id;Score = score;}
}

②单向链表类:

public class LinkedList
{private class Node{public Student Data { get; set; }public Node Next { get; set; }public Node(Student student){Data = student;Next = null;}}private Node head;public LinkedList(){head = null;}public Student Get(int id){Node current = head;while (current != null){if (current.Data.ID == id)return current.Data;current = current.Next;}return null; // if not found}public Student Locate(int pos){Node current = head;int index = 0;while (current != null && index < pos){current = current.Next;index++;}if (current != null)return current.Data;elsereturn null; // if position is out of bounds}public bool Insert(Student stu){Node newNode = new Node(stu);if (head == null || head.Data.ID > stu.ID){newNode.Next = head;head = newNode;return true;}Node current = head;while (current.Next != null && current.Next.Data.ID < stu.ID){current = current.Next;}newNode.Next = current.Next;current.Next = newNode;return true;}
}

③读取数据文件并格式化为 Student 对象

using System;
using System.Collections.Generic;
using System.IO;class Program
{static void Main(){LinkedList studentList = new LinkedList();// 读取数据文件string[] lines = File.ReadAllLines("data.txt");foreach (string line in lines){string[] parts = line.Split(',');if (parts.Length == 3){string name = parts[0];int id = int.Parse(parts[1]);int score = int.Parse(parts[2]);Student student = new Student(name, id, score);studentList.Insert(student);}}// 示例:根据学号查询学生信息int searchID = 20216793;Student foundStudent = studentList.Get(searchID);if (foundStudent != null){Console.WriteLine($"Student found: {foundStudent.Name}, ID: {foundStudent.ID}, Score: {foundStudent.Score}");}else{Console.WriteLine($"Student with ID {searchID} not found.");}// 示例:根据位置查询学生信息int position = 2;Student studentAtPosition = studentList.Locate(position);if (studentAtPosition != null){Console.WriteLine($"Student at position {position}: {studentAtPosition.Name}, ID: {studentAtPosition.ID}, Score: {studentAtPosition.Score}");}else{Console.WriteLine($"No student found at position {position}.");}}
}

(工资参考:5K-10K)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/36708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java日常探秘-从小疑问到实践智慧的编程之旅(2)

文章目录 前言一、常见错误400错误401错误404错误MismatchedInputExceptionMybatis的NumberFormatExceptionMybatis的Available parameters are [collection,list]]报错Mybatis之Double类型的字段的值为0.0传入不了sql中 二、SQL效率数据库字段类型和传入参数类型不匹配小表驱动…

【手撕代码】握手机制

文章目录 为什么要握手握手信号无非3种可能 怎样实现握手案例一&#xff1a;数据反压 参考链接 为什么要握手 跨时钟域处理&#xff1a; 握手信号法其实也用到了脉冲展宽的方法&#xff0c;只是展宽信号的变化条件不同。因为如果不对脉冲进行展宽&#xff0c;慢速时钟域的时钟…

PromptCraft-Robotics部署步骤和问题记录

GitHub - microsoft/PromptCraft-Robotics: Community for applying LLMs to robotics and a robot simulator with ChatGPT integration 部署环境&#xff1a;UE4.27 Visual Studio 2022 Arisim1.8.1 可参考&#xff1a;git clone https://github.com/Microsoft/AirSim.gi…

用promise实现批量请求数据,同时支持控制请求的并发数

假设有个业务场景,要求:可以批量请求数据,所有的 URL 地址在 urls 参数中,同时可以通过 max 参数控制请求的并发度,当所有请求结束之后,需要执行 callback 回掉函数。 JavaScript代码实现 async function sendRequest(urls, max, callback) {// 用于存储所有请求的promi…

Java三方库-单元测试

文章目录 Junit注解常用类无参数单测带参数的单测 Junit 主要版本有4和5版本&#xff0c;注解不太一样&#xff0c; 4迁移5参考官方文档 主要记录下常用的一些操作 其他复杂操作见官网 https://junit.org/junit5/docs/current/user-guide/#overview-java-versions 引入5.9…

WSL Ubuntu 如何设置中文语言?

本章教程,主要介绍如何在WSL Ubuntu 如何设置中文语言。 操作系统:Windows 10 Pro 64 WSL子系统:Ubuntu 20.04 LTS 一、安装中文语言包 sudo apt install language-pack-zh-hans二、设置中文语言 sudo dpkg-reconfigure locales选择en_US.UTF-8 和 zh_CN.UTF-8 选择zh_CN.…

Java虚拟机(JVM)中符号引用(symbolic reference)和直接引用以及转化过程

在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;符号引用&#xff08;symbolic reference&#xff09;和直接引用&#xff08;direct reference&#xff09;是两种不同的引用方式。了解这两种引用方式有助于更深入地理解Java的运行时机制&#xff0c;特别是类加载和方法…

jps命令解释以及用法

JPS命令是Linux系统中的一个常用命令&#xff0c;用于显示Java进程的相关信息。下面是JPS命令的详解&#xff1a; JPS命令是Java Development Kit&#xff08;JDK&#xff09;提供的一个工具&#xff0c;用于列出JVM进程&#xff08;Java虚拟机进程&#xff09;的信息。它通常…

39 - 安全技术与防火墙

39、安全技术和防火墙 一、安全技术 入侵检测系统&#xff1a;特点是不阻断网络访问&#xff0c;主要是提供报警和事后监督。不主动介入&#xff0c;默默看着你&#xff08;监控&#xff09;。 入侵防御系统&#xff1a;透明模式工作&#xff0c;数据包&#xff0c;网络监控…

TextArea是一个用于显示和编辑多行可滚动文本的控件,通常用于需要用户输入或展示大量文本的应用中

TextArea 是一个用于显示和编辑多行可滚动文本的控件&#xff0c;通常用于需要用户输入或展示大量文本的应用中。以下是 TextArea 中常用的属性、信号和方法的详解&#xff1a; 常用属性 text: 描述&#xff1a;用于设置或获取显示的文本内容。类型&#xff1a;string示例&…

python-(opencv)视频转glf

文章目录 前言python-(opencv)视频转glf1. 下载 opencv-python2. cv2&#xff08;OpenCV&#xff09;和imageio的区别3. demo源码 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说…

youlai-boot项目的学习(4) 前后端本地部署

环境 1、macOS, brew, IntelliJ IDEA, WebStrom 2、后端&#xff1a;https://gitee.com/youlaiorg/youlai-boot.git , master, 9a753a2e94985ed4cbbf214156ca035082e02723 3、前端&#xff1a;https://gitee.com/youlaiorg/vue3-element-admin.git, master, 66b913ef01dc880ad…

mobaxterm x11 转发Ubuntu mac

目录 royal tsx —— 一款Mac平台MobaXterm平替工具 mobaxterm x11 转发Ubuntu 软件 royal tsx —— 一款Mac平台MobaXterm平替工具 Royal Apps Termius Mac mobaxterm x11 转发Ubuntu 软件 所以直接在 ssh 的时候加上 - X 就可以了 ssh -X -p xxx usernameIP 运行 xclock …

递归函数设计技巧

如何设计递归函数 要学会如何设计递归函数&#xff0c;首先要识别什么样的问题才适合递归函数求解&#xff0c;那么我们可以通过数学归纳法&#xff0c;分析问题&#xff0c;观察问题是否符合相关性质。 数学归纳法 数学归纳法&#xff0c;是一种基本的数学证明方法&#xff0c…

深度解析RocketMq源码-IndexFile

1.绪论 在工作中&#xff0c;我们经常需要根据msgKey查询到某条日志。但是&#xff0c;通过前面对commitLog分析&#xff0c;producer将消息推送到broker过后&#xff0c;其实broker是直接消息到达broker的先后顺序写入到commitLog中的。我们如果想根据msgKey检索一条消息无疑…

Zookeeper:基于Zookeeper的分布式锁

一、Zookeeper分布式锁原理 二、Zookeeper JavaAPI操作 1、Curator介绍 Curator是Apache Zookeeper的Java客户端。常见的Zookeeper Java API&#xff1a; 原生Java API。ZkClient。Curator。 Curator项目目标是简化Zookeeper客户端的使用。Curator最初是Netfix研发的&#xf…

LIMS系统选型时应该避免哪些误区呢

LIMS实验室管理系统在选型、实施及使用过程中&#xff0c;确实存在一些常见的误区。以下是对这些误区的详细解析和归纳&#xff1a; 一、误区 1、只关注功能而忽视用户需求 在LIMS系统的选型过程中&#xff0c;实验室可能过于关注系统的功能和技术特性&#xff0c;而忽视了实…

42.option方法给服务端和客户端配置参数

客户端是Bootstrap.option方法配置参数。 服务端有两个: 1.ServerBootstrap.option方法,给ServerSocketChannel配置参数的。 2.ServerBootstrap.childOption方法,给SocketChannel配置参数的。 package com.xkj.client;import com.xkj.message.*; import com.xkj.protoco…

K近邻回归原理详解及Python代码示例

K近邻回归原理详解 K近邻回归&#xff08;K-Nearest Neighbors Regression, KNN&#xff09;是一种基于实例的学习算法&#xff0c;用于解决回归问题。它通过找到输入数据点在特征空间中最相似的K个邻居&#xff08;即最近的K个数据点&#xff09;&#xff0c;并使用这些邻居的…