YTU 2430: C语言习题 链表建立,插入,删除,输出
2430: C语言习题 链表建立,插入,删除,输出
时间限制: 1 Sec 内存限制: 128 MB
提交: 576 解决: 280
题目描述
编写一个函数creatlink,用来建立一个动态链表。(包含学号和成绩)
编写一个函数printlink,用来输出一个链表。
编写一个函数dellink,用来删除动态链表中一个指定的结点(由实参指定某一学号,表示要删除该学生结点)。
编写一个函数insertlink,用来向动态链表插入一个结点。
编写一个函数freelink,用来释放一个动态链表。
输入
输入多个学生的学号和成绩,建立动态链表,以0 0 结束
输入学号,删除链表中的对应结点
插入两个链表结点
输出
输出的链表
样例输入
- 1001 100
- 1002 95
- 1005 90
- 1008 76
- 0 0
- 1005
- 1006 98
- 1009 99
样例输出
- 1001 100.00
- 1002 95.00
- 1006 98.00
- 1008 76.00
- 1009 99.00
提示
/* C代码 */
int main()
{
struct student *creatlink(void);
struct student *dellink(struct student *,long);
struct student *insertlink(struct student *,struct student *);
void printlink(struct student *);
void freelink(struct student *);
struct student *head,stu;
long del_num;
head=creatlink();
scanf("%ld",&del_num);
head=dellink(head,del_num);
scanf("%ld%f",&stu.num,&stu.score);
head=insertlink(head,&stu);
scanf("%ld%f",&stu.num,&stu.score);
head=insertlink(head,&stu);
printlink(head);
freelink(head);
return 0;
}
/* C++代码 */
int main()
{
student *creatlink(void);
student *dellink(student *,long);
student *insertlink(student *,student *);
void printlink(student *);
void freelink(student *);
student *head,stu;
long del_num;
head=creatlink();
cin>>del_num;
head=dellink(head,del_num);
cin>>stu.num>>stu.score;
head=insertlink(head,&stu);
cin>>stu.num>>stu.score;
head=insertlink(head,&stu);
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
printlink(head);
freelink(head);
return 0;
}
迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……
- #include<stdio.h>
- #include<iostream>
- #include<stdlib.h>
- #include<string.h>
- #include<iomanip>
- using namespace std;
- struct student
- {
- long int num;
- float score;
- struct student *next;
- };
- struct student *creatlink()
- {
- struct student *p1,*p2,*head=NULL;
- p1=p2=(struct student*)malloc(sizeof(struct student));
- while(~scanf("%ld%f",&p1->num,&p1->score)&&(p1->score||p1->num))
- {
- if(head==NULL)head=p1;
- else p2->next=p1;
- p2=p1;
- p1=p1->next=(struct student*)malloc(sizeof(struct student));
- }
- p2->next=NULL;
- return head;
- };
- struct student *dellink(struct student *a,long b)
- {
- struct student *head=a,*p=a,*p2=a;
- while(p!=NULL)
- {
- if(p->num==b)
- p2->next=p->next;
- p2=p;
- p=p->next;
- }
- return head;
- };
- struct student *insertlink(struct student *a,struct student *b)
- {
- struct student *head=a,*p=a,*p2=a,*k;
- k=(struct student*)malloc(sizeof(struct student));
- k->num=b->num,k->score=b->score;
- int n=0;
- while(p!=NULL)
- {
- if(p->num>b->num)
- {
- p2->next=k;
- k->next=p;
- n=1;
- }
- p2=p;
- p=p->next;
- }
- if(n==0)p2->next=k,k->next=NULL;
- return head;
- };
- void printlink(struct student *a)
- {
- struct student *p=a;
- while(p!=NULL)
- {
- printf("%ld %.2f\n",p->num,p->score);
- p=p->next;
- }
- }
- void freelink(struct student *a)
- {
- while(a!=NULL)
- {
- delete(a);
- a=a->next;
- }
- }
- int main()
- {
- student *creatlink(void);
- student *dellink(student *,long);
- student *insertlink(student *,student *);
- void printlink(student *);
- void freelink(student *);
- student *head,stu;
- long del_num;
- head=creatlink();
- cin>>del_num;
- head=dellink(head,del_num);
- cin>>stu.num>>stu.score;
- head=insertlink(head,&stu);
- cin>>stu.num>>stu.score;
- head=insertlink(head,&stu);
- cout<<setiosflags(ios::fixed);
- cout<<setprecision(2);
- printlink(head);
- freelink(head);
- return 0;
- }
YTU 2430: C语言习题 链表建立,插入,删除,输出的更多相关文章
- C语言习题 链表建立,插入,删除,输出
Problem B: C语言习题 链表建立,插入,删除,输出 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 222 Solved: 92 [Subm ...
- YTU 2429: C语言习题 学生成绩输入和输出
2429: C语言习题 学生成绩输入和输出 时间限制: 1 Sec 内存限制: 128 MB 提交: 1897 解决: 812 题目描述 编写一个函数print,打印一个学生的成绩数组,该数组中有 ...
- Problem A: C语言习题 链表建立,插入,删除,输出
#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct student { l ...
- Problem X: C语言习题 学生成绩输入和输出
Problem X: C语言习题 学生成绩输入和输出 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 4722 Solved: 2284[Submit] ...
- 20140502 static_cast和dynamic_cast的类型检查 双链表建立,删除,打印
1.static_cast和dynamic_cast的类型检查 static_cast的类型检查:只检查无关类之间的转换 CBaseY* pY1 = static_cast<CBaseY*> ...
- YTU 2414: C语言习题 字符串排序
2414: C语言习题 字符串排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 656 解决: 305 题目描述 输入n个字符串,将它们按字母由小到大的顺序排列并输出.编写三个函数实 ...
- YTU 2974: C语言习题5.26--文件操作3
2974: C语言习题5.26--文件操作3 时间限制: 1 Sec 内存限制: 128 MB 提交: 213 解决: 92 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...
- YTU 2973: C语言习题5.25--文件操作2
2973: C语言习题5.25--文件操作2 时间限制: 1 Sec 内存限制: 128 MB 提交: 242 解决: 105 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编 ...
- YTU 2972: C语言习题5.24--文件操作1
2972: C语言习题5.24--文件操作1 时间限制: 1 Sec 内存限制: 128 MB 提交: 248 解决: 94 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...
随机推荐
- 03003_Http响应
1.Http协议 (1)状态码: (2)常用的状态码如下: 200 :请求成功: 302 :请求重定向: 304 :请求资源没有改变,访问本地缓存: 404 :请求资源不存在.通常是用户路径编写错误, ...
- C#与Ranorex自动化公用方法
原创 - C#与Ranorex自动化公用方法 利用c#在Ranorex上写自动化已经有很长的一段时间了,总结发现常用的方法不外乎如下几种: 1.打开浏览器:或者app public static vo ...
- mongodb客户端连接mongodb server
import pymongo import sys import os sys.path.append(os.path.split(os.path.realpath(__file__))[0]+&qu ...
- Codeforces Round #321 (Div. 2)-A. Kefa and First Steps,暴力水过~~
A. Kefa and First Steps time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- 生物遗传学 整理人PYJ (恋_紫花地丁)
生物遗传学整理人PYJ (恋_紫花地丁) 高中生物唯一需要数学知识的就是遗传学的概率计算了.这里对简单的遗传学规律做一些总结. 目录: 1. 孟德尔第一定律(分离定律): 2. 孟 ...
- 【译】Nodejs最好的ORM
TypeORM github: https://github.com/typeorm/typeorm这篇译文是从TypeORM github上的使用说明上翻译过来的,已经提交PR并merge到库中了. ...
- BZOJ 1798:
6: LAZY 线段树有乘法的更新 #include <cstdio> #include <cstring> #include <algorithm&g ...
- Spring基于Java的配置
以下内容引用自http://wiki.jikexueyuan.com/project/spring/java-based-configuration.html: 基于Java的配置选项,可以使你在不用 ...
- 初始VueJS视频
本视频简单的介绍的使用. 初始VueJS视频
- HDU 5089 Assignment(rmq+二分 或 单调队列)
Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...