当前位置: 首页 > news >正文

递增链表的插入

习题2.4 递增的整数序列链表的插入 (15 分)

本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。

函数接口定义:

List Insert( List L, ElementType X );

其中List结构定义如下:

typedef struct Node *PtrToNode;
struct Node {
    ElementType Data; /* 存储结点数据 */
    PtrToNode   Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */

L是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Insert要将X插入L,并保持该序列的有序性,返回插入后的链表头指针。

裁判测试程序样例:

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

typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
    ElementType Data;
    PtrToNode   Next;
};
typedef PtrToNode List;

List Read(); /* 细节在此不表 */
void Print( List L ); /* 细节在此不表 */

List Insert( List L, ElementType X );

int main()
{
    List L;
    ElementType X;
    L = Read();
    scanf("%d", &X);
    L = Insert(L, X);
    Print(L);
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

5
1 2 4 5 6
3

输出样例:

1 2 3 4 5 6 


 1 List Insert( List L, ElementType X )
 2 {
 3     PtrToNode p = L;
 4     while(p->Next != NULL && X > p->Next->Data)     //找到X的前驱节点p
 5         p = p->Next;
 6     PtrToNode NewNode = (PtrToNode)malloc(sizeof(struct Node));
 7     NewNode->Data = X;
 8     NewNode->Next = p->Next;
 9     p->Next = NewNode;
10     return L;
11 }

 

转载于:https://www.cnblogs.com/FengZeng666/p/9680090.html

相关文章:

  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • Linux 环境变量的配置解决(-bash: jps: command not found)问题
  • Tomcat学习—Tomcat的简介和目录以及配置文件介绍(Windows环境)
  • Kafka简介
  • Jvm(49),指令集----异常处理指令
  • centos7设置开机启动
  • RedHat已更改其开源许可规则
  • C/C++——二维数组与指针、指针数组、数组指针(行指针)、二级指针的用法...
  • 程序员的迷茫期
  • Java集合源码学习(1)接口
  • 微信小程序【树形视图】demo
  • 使用JTAG调试器和Freemaster 2.0 进行powerpc架构的mpc5XXX系列的调试
  • EM算法随记
  • Vue 字段验证 八
  • 批量ping 检测linux主机是否可以通
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • android 一些 utils
  • conda常用的命令
  • export和import的用法总结
  • Golang-长连接-状态推送
  • java取消线程实例
  • Laravel Mix运行时关于es2015报错解决方案
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • overflow: hidden IE7无效
  • PHP 的 SAPI 是个什么东西
  • 阿里研究院入选中国企业智库系统影响力榜
  • 一道闭包题引发的思考
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #{} 和 ${}区别
  • #ifdef 的技巧用法
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)德国人的记事本
  • 、写入Shellcode到注册表上线
  • .gitignore文件---让git自动忽略指定文件
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET文档生成工具ADB使用图文教程
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @Autowired自动装配
  • [<MySQL优化总结>]
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [AIGC] MySQL存储引擎详解
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配
  • [C++]C++入门--引用
  • [flask]http请求//获取请求体数据
  • [IDF]聪明的小羊