【PTA编程题】7-1 保持链表有序

对于输入的若干学生的信息,按学号顺序从小到大建立有序链表,最后遍历链表,并按顺序输出学生信息。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据首先输入一个正整数n,表示学生的个数。然后输入n行信息,分别是学生的学号和姓名,其中,学号是8位的正整数(保证各不相同),姓名是长度不超过10且不含空格的字符串。

输出格式:

对于每组测试,按顺序输出学生信息,学号和姓名之间留一个空格(参看输出样例)。

输入样例:

1
3
20220108 Zhangsan
20210328 Lisi
20210333 Wangwu

输出样例:

20210328 Lisi
20210333 Wangwu
20220108 Zhangsan

代码呈现

//C语言
#include<stdio.h>
#include<stdlib.h>
#include<string.h>//定义学生结构体
struct Student
{char code[9];//学号char name[11];//名字struct Student* next;//指向下一个节点的指针
};//写一个函数创建新节点
struct Student* creatNode(char code[],char name[])
{//分配内存空间struct Student* newNode = (struct Student*)malloc(sizeof(struct Student));strcpy(newNode->code,code);//复制学号strcpy(newNode->name,name);//复制姓名newNode->next = NULL;//将next指针初始化为NULL,表示链表的结束return newNode;
}//插入节点到有序链表中
struct Student* insertNode(struct Student* head,struct Student* newNode)
{if(head == NULL || strcmp(newNode->code,head->code) < 0){//如果链表为空或者新节点的学号小于头节点的学号,将新节点插入到头部newNode->next = head;return newNode;//返回新节点为头部}struct Student* curr = head;//辅助节点while(curr->next != NULL && strcmp(newNode->code,curr->next->code) > 0){curr = curr->next;}newNode->next = curr->next;curr->next = newNode;return head;}//遍历链表并输出学生信息
void traverseList(struct Student* head)
{struct Student* curr = head;while(curr != NULL){printf("%s %s\n",curr->code,curr->name);curr = curr->next;}
}int main()
{int T;//测试数据的个数scanf("%d",&T);while(T--){int n;//学生个数scanf("%d",&n);struct Student* head = NULL;for(int i = 0;i < n;i++){char code[9];char name[11];scanf("%s%s",code,name);struct Student* newNode = creatNode(code,name);head = insertNode(head,newNode);}traverseList(head);//释放链表内存空间struct Student* curr = head;while(curr != NULL){struct Student* temp = curr;curr = curr->next;free(temp);}}return 0;
}

测试点

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

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

相关文章

IT行业证书的获取与价值:提升职业竞争力的关键

目录 IT行业证书的价值和作用 1. Cisco&#xff08;思科&#xff09;认证&#xff08;如CCNA、CCNP、CCIE&#xff09;&#xff1a; 2. 微软认证&#xff08;如MCSA、MCSE、MCSD&#xff09;&#xff1a; 3. 计算机网络技术&#xff08;CompTIA Network、CompTIA Security&a…

《汇编语言》- 读书笔记 - 各章检测点归档

《汇编语言》- 读书笔记 - 各章检测点归档 检测点 1.1检测点 2.1检测点 2.2检测点 2.3检测点 3.1检测点 3.2检测点 6.1检测点 9.1 检测点 1.1 1个CPU 的寻址能力为8KB&#xff0c;那么它的地址总线的宽度为 13 。 解&#xff1a;8KB 8192B 213 1KB的存储器有 10…

构建高效直播美颜系统:美颜SDK集成与性能优化指南

如今&#xff0c;美颜技术的广泛应用成为各类直播平台的标配之一。今天&#xff0c;小编将与大家进一步讨论如何构建高效的直播美颜系统&#xff0c;重点关注美颜SDK的集成和性能优化方面。 一、美颜SDK的选择与集成 选择合适的美颜SDK是构建高效直播美颜系统的第一步。不同的…

MATLAB频域分析(附完整代码)

1. MATLAB进行频域分析举例 以下是一个使用MATLAB进行频域分析的例子。在这个例子中&#xff0c;我们将生成一个含有两个不同频率分量的信号&#xff0c;然后使用快速傅里叶变换&#xff08;FFT&#xff09;来分析其频域特性。 main.m文件 clc;close all;clear all;warning of…

12. onnx转为rknn测试时有很多重叠框的修改(python)

我们下载rknn-toolkit2-master后并进行前面的处理后&#xff0c;进入到rknn-toolkit2-master\examples\onnx\yolov5文件夹&#xff0c;里面有个test.py文件&#xff0c;打开该文件&#xff0c;其代码如下&#xff1a; # -*- coding: utf-8 -*- # coding:utf-8import os import…

msvcp120.dll丢失如何解决/找不到msvcp120.dll的5种有效的解决方法

在计算机系统运行过程中&#xff0c;如果遇到“找不到msvcp120.dll”的提示信息&#xff0c;这代表了何种具体状况呢&#xff1f;首先&#xff0c;我们需要明确msvcp120.dll文件的重要性。msvcp120.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;这是一…

工作与生活平衡:在生活中寻找和谐

工作和生活是我们生活中不断交织的两个重要方面。对许多人来说&#xff0c;找到两者之间的完美平衡已经成为一个持久的挑战。然而&#xff0c;与其专注于平衡&#xff0c;更重要的是要认识到工作和生活并不是可以相互平衡的两个分离实体&#xff0c;而是一个相互影响的循环。正…

[word] word小数点对齐怎么设置 #微信#其他#其他

word小数点对齐怎么设置 使用Word编辑文档的时候&#xff0c;如果有小技巧的话&#xff0c;可以解决很多遇到的问题&#xff0c;也让工作更高效的完成&#xff0c;下面给大家分享word小数点对齐怎么设置的小技巧。 1、设置格式 选中内容&#xff0c;点击段落一一制表符&#…

扩展鸿蒙textinput组件

扩展鸿蒙textinput组件&#xff0c;支持快速扩展展性&#xff0c;标题文本等&#xff0c;文本内容双向绑定、文本组件快速复用。 组件代码 /*** 单选文本*/ Component export default struct DiygwInput{//绑定的值Link value:string;//未选中图标State labelImg: Resource …

探索虚拟与增强现实的无限可能:塑造未来的生活体验

美国当地时间2月2日&#xff0c;苹果首款头显Vision Pro正式上市&#xff0c;当天&#xff0c;在员工高喊“AVP&#xff08;Apple Vision Pro&#xff09;”呼声中&#xff0c;苹果首席执行官蒂姆‧库克&#xff08;Tim Cook&#xff09;在位于纽约曼哈顿第五大道的苹果旗舰店开…

ShardingSphere 5.x 系列【3】分库分表中间件技术选型

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 前言2. My Cat3. ShardingSphe…

Docker 一小时从入门到实战 —— Docker commands | Create your own image | vs VM ... 基本概念扫盲

Docker crash course 文章目录 Docker crash course1. What and Why of Docker?2.1 What2.2 What problem does it solve?2.2.1 before containers2.1.2 with containers 2. Docker vs Virtual Machines2.1 Difference2.2 Benefits 3. Install docker locally4. Images vs Co…

【CSS】外边距折叠(margin 塌陷)

外边距折叠(collapsing margins) 毗邻的两个或多个margin会合并成一个margin&#xff0c;叫做外边距折叠。 规则如下: 两个或多个毗邻的普通流中的块元素垂直方向上的 margin会折叠浮动元素 / inline-block元素 / 绝对定位元素 / 行内元素的margin不会和垂直方向上的其他元素…

【网站项目】046人事管理信息系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

锁优化的方法

减少锁持有时间 减少锁粒度 将大对象拆分成小对象&#xff0c;增加并行度&#xff0c;降低锁竞争。ConcurrentHashMap允许多个线程同 时进入 锁分离 根据功能进行锁分离ReadWriteLock在读多写少时&#xff0c;可以提高性能。 锁消除 锁消除是发生在编译器级别的一种锁优化…

解放网工双手-SNMP如何做好运维辅助?

1. SNMP为什么被誉为“网管神器”&#xff1f; 2. SNMP不同版本有何区别&#xff1f; 3. SNMP有哪些问题及Telemetry有何优势&#xff1f; ---- SNMP ----- 简单网络管理协议 U2000&#xff1a;传输设备管理 企业&#xff0c;银行 esight&#xff1a;华为 iMaster NCE-Camp…

编码世界探秘:原反补码与实数表示,含定点、浮点及BCD编码

数值的编码表示 整数编码表示 在计算机中&#xff0c;因为只有0和1这两种形式&#xff0c;但为了表示数的正&#xff08;&#xff09;&#xff0c;负&#xff08;-&#xff09;号&#xff0c;就要将数的符号以0和1编码。 通常把一个数的最高位定义为符号位&#xff0c;用0表…

#Z0458. 树的中心2

题目 代码 #include <bits/stdc.h> using namespace std; struct ff {int z,len; }; vector<ff> vec[300001]; int n,u,v,w,dp[300001][2],ans 1e9; void dfs(int x,int fa) {for(int i 0;i < vec[x].size();i){ff son vec[x][i];if(son.z ! fa){dfs(son.z,…

保护个人信息安全,避免成为“互联网中的裸泳者”

⚽️ 一、互联网中的裸泳者&#x1f3c0; 二、代理 IP 的应用 - 解锁无限可能⚾️ 三、代理 ip 的几种类型 3.1 动态住宅代理&#xff08;Rotating Residential Proxy&#xff09;3.2 静态住宅代理&#xff08;Static Residential Proxy&#xff09;3.3 动态长效ISP&#xff08…

LLM之RAG实战(二十四)| LlamaIndex高级检索(三):句子窗口检索

这是本系列关于高级检索技术的第三篇文章&#xff0c;之前的两篇分别介绍构建基本的RAG和父文档检索技术&#xff0c;本文我们将深入研究句子窗口检索技术。我将介绍如何设置它&#xff0c;并使用TruEval来测量其性能&#xff0c;并将其性能与我们在前几篇文章中介绍的其他技术…