初识链表(for hw)

Jeremy最近学习了指针和链表的概念,而链表可以使用结构体实现。他知道链表中有一种叫做循环链表例如1->2->3->4->5->1(其中第一个1和最后一个1是同一个)。

期中考试后,老师让Jeremy做一个学生的成绩统计,Jeremy想使用结构体实现简单的循环链表来完成。他计划读入同学的学号和成绩等级,例如学号1,等级b,学号2,等级a......

这个程序需要实现下面的功能:

例如有4个同学,他们的学号等级分别为:“12 a”,"3 b", "57 c", "1 d";他们的关联关系为"12 a"->"3 b"->"57 c"->"1 d"->"12 a"。

程序需要实现的功能是当输入一个学号时,输出上一个同学的等级,例如输入3,应该输出a,输入12应该输出d。

当输入的学号在这些同学中出现多次时,输出学号第一次出现时上一个同学的等级,例如:“12 a”,"12 b", "57 c", "1 d",应输出d

若查找不到该学号,则不输出

有其他坑爹地方请相互在评论区提示,并邮件TA,谢谢。

Input

第一行为两个整数num和m,num代表学生的总数,m代表输入的学号。

下面num行,每一行包含一个整数代表学号和一个字符代表成绩等级

Output

上一个同学的成绩等级(换行)

Input
3 2

1 a

2 b

3 c

Output

a

链表模板如下:

typedef struct node *link;

typedef struct node {

int student_num;

link next;

}node;

尽管可以用数组完成,但希望同学们可以掌握一下如何写链表和结构体,今后笔试面试都有很大机会用得上。

我的是用结构体数组,虽然没有用链表,但是也能学到挺多

 1 #include<stdio.h>
 2 struct stu {
 3     int a;
 4     char b;     //可以为开数组提供便利或者提供分类
 5 };
 6
 7 int main() {
 8     int i, num, m;
 9     struct stu haha[10000];//结构体可以用于开一个数组,数组里面可以有很多不同类型的变量,且可以分很多个变量
10     scanf("%d %d", &num, &m);
11     for (i = 1; i <= num; i++) {
12         scanf("%d %c", &haha[i].a, &haha[i].b);//可以这样用,注意%d与%c之间的空格,根据题目的输入一定要有,不然%c读入的会是空格
13     }
14     for (i = 1; i <= num; i++) {
15         if (m == haha[1].a) {
16             printf("%c\n", haha[num].b);
17             break;
18         } else if (haha[i].a == m) {
19             printf("%c\n", haha[i - 1].b);
20             break;
21         }
22     }
23     return 0;
24 }

标答

时间: 2024-12-15 01:57:14

初识链表(for hw)的相关文章

初识java集合——链表

* 链表中的每个节点,存放着上一个节点的引用和下一个节点的引用 * 相对于泛型集合,链表是一个有序集合,每个对象的位置十分的重要 * 链表的add默认也是添加到尾部的 * * 链表的添加删除操作往往借助迭代器来完成,参见IteratorIntro * * 对于链表的遍历,绝对不要使用(代码区-1)的方式,例如get(3),要从头开 * 始到3的索引,get(7),又得从头开始到7的位置,效率非常的低. * 因为LinkedList对象不做任何缓存位置信息操作 * //代码区-1 for( int

Redis初识、设计思想与一些学习资源推荐

一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年3 月15 日起,Redis 的开发工作由VMware 主持. Redis 是一个Key-Value 存储系统.和Memcached 类似,它支持存储的value 类型相对更多, 包括string(字符串).hash(散列).list(链表).set(集合)和zset(有序集合).这些数据类型支持p

Python学习日志之Python数据结构初识

Python数据结构初识: 一.Python数据结构概述 1.何为数据结构 在程序中,同样的一个或几个数据组织起来,可以有不同的组织方式,也就是不同的存储方式,不同的组织方式就是不同的结构,我们把这些数据组织在一起的结构就叫做数据结构 例如: 有一串字符串:"abc",我们将它重新组织一下,比如通过list()函数将"abc"变成["a","b","c"],那么这个时候数据发生了重组,重组之后的结构就发生了

C语言实现单链表-02版

我们在C语言实现单链表-01版中实现的链表非常简单: 但是它对于理解单链表是非常有帮助的,至少我就是这样认为的: 简单的不能再简单的东西没那么实用,所以我们接下来要大规模的修改啦: Problem 1,要是数据很多怎么办,100000个节点,这个main函数得写多长啊... 2,这个连接的方式也太土啦吧!万一某个节点忘记连接下一个怎么办... 3,要是我想知道这个节点到底有多长,难道每次都要从头到尾数一遍嘛... 4,要是我想在尾部添加一个节点,是不是爬也要爬到尾部去啊... 这个是简单版中提出

初识Redis(安装,持久化,数据类型)

[toc] 初识Redis(安装,持久化,数据类型) 一.Redis介绍: [ ] Redis和Memcached类似,也属于k-v数据存储,但是功能和操作性要比Memcached好很多. [ ] Redis官网redis.io, 当前最新稳定版4.0.1 支持更多value类型,除了和string外,还支持hash.lists(链表).sets(集合)和sorted sets(有序集合) [ ] redis使用了两种文件格式:全量数据(RDB)和增量请求(aof). [ ] 全量数据格式是把内

人工智能初识

人工智能 0.人工智能初识 0.1:课前准备 0.2:课程主要内容 0.3:知识点 0.4:TensorFlow的介绍 0.5:课程需要用到的软件及其安装 1.人工智能.机器学习.深度学习的定义 1.1:定义和分类 1.2:过拟合问题 1.3:RNN递归神经网络 2.TensorFlow的使用 2.1:创建一个简单的helloword显示 2.2:TensorFlow的基础模型 2.3:可视化利器TensorBoard 0. 人工智能初识 目前人工智能越来越火,比如说AlphaGo打败了李世石.

Redis之学习-初识安装

redis是开源,BSD许可,高级的key-value存储系统.可以用来存储字符串,哈希结构,链表,集合常用来提供数据结构服务. redis和memcached相比,的独特之处:1: redis可以用来做存储, 而memccached是用来做缓存,这个特点主要因为其有"持久化"的功能.2: 存储的数据有"结构",对于memcached来说,存储的数据,只有1种类型字符串而redis则可以存储字符串,链表,哈希结构,集合,有序集合等 公司使用redis很久了,一直没有

初识Generator和Async函数

从promise出现开始,JavaScript一直在致力于简化异步编程的流程,帮助开发者摆脱回调地狱的困境. 在ES6规范中引入新的概念Generator,由此node的框架koa迅速采用,并实现了co来帮助进行迭代, 而ES7中出现的Async函数更是将异步简化成了"同步",可以让我们以接近编写同步代码的方式来编写异步代码(无需使用.then()或者回调函数),下面就将依次介绍这两种方法的区别与相似之处. Generator 说到Generator我们首先来了解下Iterator(遍

c语言动态链表的创建

创建动态连链表就是将一个个节点连接起来 (1)动态生成节点 (2)输入节点数据 (3)将节点链在一起 例: typedef struct Data { char num[20]; char name[10]; char sex; float english; float chinese; float math; }; typedef struct Node { struct Data data;//结构体类型//结构体嵌套 struct Node* next;//结构体指针型 }node,*Pn