c语言关于链表选择题看不懂,有关链表基本操作三题

因为觉得C语言老师讲链表讲的太匆忙了,况且PPT太乱太杂,看不懂

因此特地重写了次这周三上机有关链表操作的三题。(所写题目默认已排序,不考虑排序)

问题A:在单链表中按学号查成绩

时间限制: 1 Sec  内存限制: 128 MB

提交: 62  解决: 43

[提交][状态][讨论版]

题目描述

写一个建立单链表的函数,设链表的表元素包含学号、姓名、一门课的成绩,写一个按照学号查学生成绩的函数;最后写一个主函数,先调用建立函数,再调用查询函数,显示查到的学生的姓名和成绩。

输入

前几行是一组学生信息,每行一个学生包括学号、姓名、成绩,当输入学号为0结束;

最后一行是一个学号,是待查询的学生学号

输出

查到的学生成绩信息,一行包括学号,姓名,成绩。

如果没找到则输出Not found

样例输入

1 Wangli 77

3 Lishi 88

4 Zhangsan 87

5 Cuidi 90

7 Zhaowu 67

8 Wuwei 86

0

7

样例输出

7 Zhaowu 67

1 #include 2 #include 3 #define NULL 0

4 #define LEN sizeof(struct student)

5 structstudent6 {7 intnum;8 char name[15];9 intscore;10 struct student *next;11 }*head,*p1,*p2,*p;12 /*p1:指向后继结点的首地址的指针变量13 p2:指向结点成员next的指针变量。 next的值是下一个结点的首地址。*/

14 struct student *creat(void)15 {16 intt;17 p1=p2=(struct student *) malloc(LEN);18 scanf("%d%s%d",&p1 ->num,&p1 ->name, &p1 ->score);19 //head=NULL;

20 head=p1;21 while(1)22 {23 p2 ->next=p1;//对当前成员下一成员地址赋值

24 p2=p1;//将p1中包含当前成员信息存储在p2

25 p1=(struct student *)malloc(LEN);//再次对p1动态开辟

26 scanf("%d",&p1->num);27 if(p1->num==0)//如果满足题意学号为0

28 break;29 scanf("%s%d",&p1 ->name, &p1 ->score);30 }31 p2 ->next=NULL;//对链表作终止处理

32 scanf("%d",&t);33 p=head;34 if(p!=NULL)35 do{36 if(p->num==t){37 printf("%d %s %d\n",p->num,p->name,p->score);38 break;39 }40 p=p->next;//使指针指向下一成员

41 }42 while(p!=NULL);43 return(head);44 }45 intmain()46 {47 creat();48 return 0;49 }

问题B:单链表中插入记录

时间限制: 1 Sec  内存限制: 128 MB

提交: 56  解决: 33

[提交][状态][讨论版]

题目描述

写一个建立单链表的函数,设链表的表元素包含学号、姓名、一门课的成绩,要求按学号从小到大输入链表结点数据;写一个插入一条学生记录的函数;最后写一个主函数,先调用建立函数,然后输入要插入的学生信息,再调用插入函数,最后输出显示插入后的链表全部信息。

输入

前几行是一组学生信息,每行一个学生包括学号、姓名、成绩,当输入学号为0结束;

最后一行是一条学生记录,是待插入的学生学号、姓名、成绩插入

输出

插入后链表信息,每行一条记录; 如果该学号已存在,则输出“Record exists!”

样例输入

1 Wangli 77

3 Lishi 88

4 Zhangsan 87

5 Cuidi 90

7 Zhaowu 67

8 Wuwei 86

0

2 Xuchen 75

样例输出

1 Wangli 77

2 Xuchen 75

3 Lishi 88

4 Zhangsan 87

5 Cuidi 90

7 Zhaowu 67

8 Wuwei 86

1 #include 2 #include 3 #define NULL 0

4 #define LEN sizeof(struct student)

5 structstudent6 {7 intnum;8 char name[15];9 intscore;10 struct student *next;11 }*head,*p1,*p2,*p,*stu;12 /*p1:指向后继结点的首地址的指针变量13 p2:指向结点成员next的指针变量。 next的值是下一个结点的首地址。*/

14 struct student *creat(void)15 {16 p1=p2=(struct student *) malloc(LEN);17 scanf("%d%s%d",&p1 ->num,&p1 ->name, &p1 ->score);18 //head=NULL;

19 head=p1;20 while(1)21 {22 p2 ->next=p1;//对当前成员下一成员地址赋值

23 p2=p1;//将p1中包含当前成员信息存储在p2

24 p1=(struct student *)malloc(LEN);//再次对p1动态开辟

25 scanf("%d",&p1->num);26 if(p1->num==0)//如果满足题意学号为0

27 break;28 scanf("%s%d",&p1 ->name, &p1 ->score);29 }30 p2 ->next=NULL;//对链表作终止处理

31

32 return(head);33 }34 void print(struct student *head)35 {36 int flag=1;37 p=head;38 if(p!=NULL)39 do{40 if(p->num>stu->num&&flag==1){41 printf("%d %s %d\n",stu->num,stu->name,stu->score);42 flag=0;43 }44 printf("%d %s %d\n",p->num,p->name,p->score);45 p=p->next;//使指针指向下一成员

46 }47 while(p!=NULL);48 }49 intmain()50 {51 creat();52 stu=(struct student *) malloc(LEN);53 scanf("%d%s%d",&stu->num,stu->name,&stu->score);54 print(head);55 return 0;56 }

问题C:单链表删除结点

时间限制: 1 Sec  内存限制: 128 MB

提交: 50  解决: 34

[提交][状态][讨论版]

题目描述

写一个建立单链表的函数,设链表的表元素包含学号、姓名、一门课的成绩,写一个按照学号删除学生记录的函数;最后写一个主函数,先调用建立函数,输入待删除学生的学号,调用删除记录的函数,最后显示删除操作后的链表信息。

输入

前几行是一组学生信息,每行一个学生包括学号、姓名、成绩,当输入学号为0结束;

最后一行是一个学号,是待删除的学生学号

输出

删除后的学生成绩表,每一行包括一个学生学号,姓名,成绩。

如果没找到则输出Not found

样例输入

1 Wangli 77

3 Lishi 88

4 Zhangsan 87

5 Cuidi 90

7 Zhaowu 67

8 Wuwei 86

0

8

样例输出

1 Wangli 77

3 Lishi 88

4 Zhangsan 87

5 Cuidi 90

7 Zhaowu 67

1 #include 2 #include 3 #define NULL 0

4 #define LEN sizeof(struct student)

5 structstudent6 {7 intnum;8 char name[15];9 intscore;10 struct student *next;11 }*head,*p1,*p2,*p,*stu;12 /*p1:指向后继结点的首地址的指针变量13 p2:指向结点成员next的指针变量。 next的值是下一个结点的首地址。*/

14 struct student *creat(void)15 {16 p1=p2=(struct student *) malloc(LEN);17 scanf("%d%s%d",&p1 ->num,&p1 ->name, &p1 ->score);18 //head=NULL;

19 head=p1;20 while(1)21 {22 p2 ->next=p1;//对当前成员下一成员地址赋值

23 p2=p1;//将p1中包含当前成员信息存储在p2

24 p1=(struct student *)malloc(LEN);//再次对p1动态开辟

25 scanf("%d",&p1->num);26 if(p1->num==0)//如果满足题意学号为0

27 break;28 scanf("%s%d",&p1 ->name, &p1 ->score);29 }30 p2 ->next=NULL;//对链表作终止处理

31

32 return(head);33 }34 void print(struct student *head,intdel_num)35 {36 int flag=1;37 p=head;38 if(p!=NULL)39 do{40 if(p->num!=del_num){41 printf("%d %s %d\n",p->num,p->name,p->score);42 }43 p=p->next;//使指针指向下一成员

44 }45 while(p!=NULL);46 }47 intmain()48 {49 intdel_num;50 creat();51 printf("input records:\n");52 scanf("%d",&del_num);53 print(head,del_num);54 return 0;55 }

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

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

相关文章

linux下的awk程序执行

#!/bin/awk -f awk脚本开头使用这个命令,赋予这个文本文件以执行的权限。这样做之后,你就可以在命令行中用类似于下面这样的方式调用并执行这段awk程序了。 BEGIN和END的大括号必须紧其后,如果换行会出错: awk: cmd. line:14: war…

HTMLParser-实战

了解了HTMLParser库的知识后,选择做一个小训练,对https://www.python.org/events/python-events/这个网址进行分析,之后输出其中每次会议的题目、时间和地点。 如果要简单了解下HTMLParser库可以点击打开 下面进入正题 这是网站的源码&#x…

c语言会员卡管理系统,路西牌会员管理系统。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼void VIP::show( Node *v){no(v);char *aVIP::sex(v);std::cout<<< "会员姓名: "<< node.item.num[1]<< endl<< "性别: "<< sex(v)<<< "手机号码: "<…

Data URI scheme 在 html 中嵌入小图片

例如: <img src"https://img-blog.csdnimg.cn/2022010704064257868.png" /> 这会显示一张图片,网上的资料一般说是 ie8 才支持,不过我在老早前就见过了,应该和 ie8 没什么关系. 刚刚又用 ie6 试了一下,的确是可以的.这是以讹传讹啊. 另外据说这只支持 32K 大小…

常见的不同类型运算的转换方式

1.字符串和数字相加&#xff0c;数字转成字符串. var one"This is a test"; var two123; var threeonetwo;// 结果&#xff1a;three:This is a test123 2.数字和布尔值相加&#xff0c;布尔值 false 转成 0&#xff0c;true 转成 1 var one13; var twotrue; var thr…

c++2015语言,2015年7月TIOBE编程语言排行榜:C++ 的复兴

2015年7月TIOBE编程语言排行榜&#xff1a;C 的复兴C是2015年上半年同比增长最快的编程语言。具体为C 增长3.1%&#xff0c;Java 增长2.0%&#xff0c;C#增长1.6%&#xff0c;Python增长1.6%。C大幅度增长的原因可能是引入了新的C11标准。这使得C被大范围的接受。C 11标准为C带…

js面向对象开发互联网机顶盒应用头端之二

/*** Dare Movie Object.* constructor*/ //声明构造函数 构造函数初始化变量Dare.Movie function() { this.parent new Dare.Util(); this.className "Dare.Movie"; //----类Dare.Movie全局属性变量-----// this.stylePath dareStyle.getStylePath(); this.…

nginx内置变量 大全

nginx内置变量 内置变量存放在 ngx_http_core_module 模块中&#xff0c;变量的命名方式和apache 服务器变量是一致的。总而言之&#xff0c;这些变量代表着客户端请求头的内容&#xff0c;例如$http_user_agent, $http_cookie, 等等。 下面是nginx支持的所有内置变量&#xf…

android抽奖动画,Android App中实现简单的刮刮卡抽奖效果的实例详解

主要思想&#xff1a;将一个view设计成多层&#xff1a;背景层&#xff0c;含中奖信息等&#xff1b;遮盖层&#xff0c;用于刮奖&#xff0c;使用关联一个Bitmap的Canvas在该Bitmap上&#xff0c;使用它的canvas.drawPath的api来处理 手势滑动(类似刮奖的动作)使用paint.setXf…

忙了一上午终于把形状特征搞定了啊

就是光滑度和紧致度&#xff0c;这个实现起来还是比较简单的&#xff0c;不过不知道这两个特征作用到底有多大啊&#xff01;

如何提高英语听力(内容摘自NECCS)+ 乘法表

乘法表 print(\n.join([ .join([%s*%s%-2s%(y,x,x*y) for y in range(1,x1)]) for x in range(1,10)])) 如何提高英语听力 很喜欢这篇关于提高英语听力的文章&#xff0c;所以收藏下来和大家一同分享一下 人走路时要用两条腿&#xff0c;没有任何人会觉得走路费劲。可如果让人…

android新拟态实现方法,Android 新拟态UI (Neumorphism)

前言本文转自github&#xff0c;只是进行了图片的处理和部分翻译&#xff0c;已获作者授权截至首次发文前找到的原作者的文章地址-May,17,2020若找到本文章更新的时间节点&#xff0c;请私信我更新。原作者github地址文末附源码下载地址&#xff0c;免费。Android上的拟态化UIT…

codeforces 919E Congruence Equation

E. Congruence Equationtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGiven an integer x. Your task is to find out how many positive integers n (1 ≤ n ≤ x) satisfy where a, b, p are all known co…

抽象工厂模块在开发中的应用

抽象工厂是设计模块中创建型模式的一种&#xff0c;它比起工厂方法模式来说&#xff0c;更加具有一般性&#xff0c;在本模式中会引入一个产品族的概念&#xff0c;就是说,在本模式中抽象产品会有多个&#xff0c;然后用抽象工厂去调用它们&#xff0c;具体怎么去调用由具体工厂…

android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现

List具有一定长度存在索引的对象集合(长度为0不存在索引,长度>0存在索引)常见列表1、定长列表默认值null例如:List fixedLengthList new List(2)、List fixedLengthList new List(8)List fixedLengthList new List(2);for(int i0;i<2;i){print("索引为${i}的值${…

[js]jquery里的jsonp实现ajax异源请求

同源请求-jquery <script type"text/javascript" src"http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script type"text/javascript">$.ajax({url: "data.txt",type: "get",dataType…

android listview remove 动画,给Android ListView添加删除item动画

给Android ListView添加删除item动画给listview删除一个item的时候加上一个折叠动画&#xff0c;感觉效果会好一点。步骤是当删除一个view&#xff0c;先用动画把view的高度改变&#xff0c;看上去就是折叠的效果。当动画完成的时候&#xff0c;再真正把item移除。private void…

Css 选择器 算法 规则

首先上图 css 命令在读取时是按照其优先级的高低的先后顺序来解读的&#xff0c;当优先级相同时是按照其css命令写的先后顺序来读取的&#xff0c;即后面的css覆盖&#xff08;前后css属性设置 不同时&#xff09;或继承&#xff08;前后css属性设置相同或后面未设置该css属性时…

鸡尾酒排序算法c语言,[golang] 数据结构-鸡尾酒排序

吐个槽又是一个不正经取名的排序算法。真要说和鸡尾酒间的关系&#xff0c;大概就是想喝到鸡尾酒(得到排序好的队列)就要摇晃酒杯让不同的成分混合均匀(向两个方向冒泡排序)原理鸡尾酒排序(Cocktail Sort)是冒泡排序的一种优化算法。原本的冒泡排序只能在一轮中挑出一个值移动到…

ie6 div height bug css注意点(转)

所有浏览器的定位都大同小异&#xff0c;在各个浏览器兼容性问题&#xff0c;要了解各个浏览器的定位区别就可以了。 比如&#xff0c;当用float浮动时&#xff0c;同时设置margin或padding在IE6中会是双倍的值。即你设置为margin:10px;那么在IE6里就相当于margin:20px; 出现这…