sdut pta 链表3(优化)-----7-3 sdut-C语言实验-链表的结点插入

2024-05-25 03:36

本文主要是介绍sdut pta 链表3(优化)-----7-3 sdut-C语言实验-链表的结点插入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

7-3 sdut-C语言实验-链表的结点插入

分数 20

全屏浏览

切换布局

作者 马新娟

单位 山东理工大学

给出一个只有头指针的链表和 n 次操作,每次操作为在链表的第 m 个元素后面插入一个新元素x。若m 大于链表的元素总数则将x放在链表的最后。

输入格式:

多组输入。每组数据首先输入一个整数n(n∈[1,100]),代表有n次操作。

接下来的n行,每行有两个整数Mi(Mi∈[0,10000]),Xi。

输出格式:

对于每组数据。从前到后输出链表的所有元素,两个元素之间用空格隔开。

输入样例:

4
1 1
1 2
0 3
100 4

输出样例:

3 1 2 4

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>
#include <stdlib.h>
struct node
{int a;struct node *next;
};//定义结构体类型;
int main()
{struct node *head,*p;int n,i;int x;while(~scanf("%d",&n)){head = (struct node*)malloc(sizeof(struct node));//要多组输入,每一组输入都要重新开辟一个头结点;head -> next = NULL;for(i=0; i<n; i++){p = (struct node*)malloc(sizeof(struct node));p -> next = NULL;scanf("%d%d",&x,&p -> a);struct node *q = head -> next;struct node *qi = head;//定义两个游动指针while(q&&x--)//寻找插入的位置;{q = q -> next;qi = qi -> next;}qi -> next = p;p -> next = q;//插入节点;}struct node *p;p = head -> next;while(p){if(p -> next){printf("%d ",p -> a);}else printf("%d\n",p -> a);p = p -> next;}}return 0;
}
 

#include <stdio.h> #include <stdlib.h>

这两行代码包含了标准的输入输出库和标准库,后者提供了动态内存分配的功能。

struct node { int a; struct node *next; };//定义结构体类型;

定义了一个名为node的结构体,它包含一个整型数据a和一个指向同类型结构体的指针next。这个结构体用于表示链表中的每个节点。

int main() { // ... }

定义了main函数,程序的执行从这里开始。

struct node *head, *p; int n, i; int x;

声明了头节点指针head,新节点指针p,循环计数器ni,以及用于临时存储输入值的x

while(~scanf("%d",&n)) { // ... }

使用while循环读取每组输入的整数数量n,直到输入失败(例如文件结束EOF)。~scanf是一种技巧,用于检查scanf是否成功读取了输入。

head = (struct node*)malloc(sizeof(struct node)); head->next = NULL;

为链表的头节点分配内存,并初始化头节点的next指针为NULL

for(i = 0; i < n; i++) { // ... }

循环n次,每次读取一对整数。

p = (struct node*)malloc(sizeof(struct node)); scanf("%d%d", &x, &p->a);

为新节点分配内存,并读取一个整数到x,然后将p->a设置为读取的值。

struct node *q = head->next; struct node *qi = head; while(q && x--) { // ... }

这段代码试图通过x--来寻找插入新节点的位置,

qi->next = p; p->next = q;

将新节点p插入到链表中qi节点的后面。

p = head->next; while(p) { // ... }

遍历链表并打印所有节点的数据。

return 0; }

main函数返回0,表示程序正常结束。

这篇关于sdut pta 链表3(优化)-----7-3 sdut-C语言实验-链表的结点插入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1000364

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

csu1329(双向链表)

题意:给n个盒子,编号为1到n,四个操作:1、将x盒子移到y的左边;2、将x盒子移到y的右边;3、交换x和y盒子的位置;4、将所有的盒子反过来放。 思路分析:用双向链表解决。每个操作的时间复杂度为O(1),用数组来模拟链表,下面的代码是参考刘老师的标程写的。 代码如下: #include<iostream>#include<algorithm>#include<stdio.h>#

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

PTA求一批整数中出现最多的个位数字

作者 徐镜春 单位 浙江大学 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

深入手撕链表

链表 分类概念单链表增尾插头插插入 删尾删头删删除 查完整实现带头不带头 双向链表初始化增尾插头插插入 删查完整代码 数组 分类 #mermaid-svg-qKD178fTiiaYeKjl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-