PTA 6-5 递增的整数序列链表的插入-程序员宅基地

技术标签: PTA  

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

函数接口定义:

List Insert( List L, ElementType X );

其中List结构定义如下:

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

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

有四个测试点,分别对应

1.最正常的情况:插在中间,无重复元素
2. 小于第一个元素的值:插在首元结点之前
3. 大于最后一个元素的值:插在链尾
4. 空链表:插在头结点之后

我的代码如下,思路就按照测试点的顺序:

List Insert( List L, ElementType X )
{
    
        List p,h;
        h = L;    
        p = (List)malloc(sizeof(struct Node));    
        p->Data = X;    
        p->Next = NULL;     
        if(L->Next==NULL){
      //如果L为空表        
        L->Next = p;        
        return L;    
        }    
        if(L->Next->Data >= X){
      //如果首元结点的数值大于等于X        
        p->Next = h->Next;        
        L->Next = p;        
        return L;
        }    
         while(h->Next && h->Data < X){
            
         if(h->Next->Data >= X){
      //如果小于前一个并且大于等于后一个            
         p->Next = h->Next;            
         h->Next = p;            
         break;        
         }        
         h = h->Next;    
         }    
         if(h->Next==NULL) //如果X大于表中所有元素        
         	h->Next = p;
   	 return L;
}

总结:
数据结构的函数题,考察链表的基本操作(插入)。不难,但容易少考虑特殊情况,多分析,多思考。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44800287/article/details/101096345

智能推荐

【Chrome】对ios-safari移动端的H5页面进行调试(ios-webkit-debug-proxy)-程序员宅基地

文章浏览阅读829次。说在前头要看干货的,可跳过该“说在前头”章节该类文章,百度上“一挖一麻袋”,但说句不好听的,“一个能打的都没有”,总结如下:scoop:win7下,搞这个都烦的一批,到最后“scoop install ios-webkit-debug-proxy”,跟我说要翻墙?下了一堆有的没的npm插件,最后还是没法用。到最后一步了,NMP..._choco install ios-webkit-debug-proxy

web上传图片,图片放大效果(viewer)_web端上传照片时可以放大吗?-程序员宅基地

文章浏览阅读871次。1.web上传图片HTML界面html这一部分的完整代码都贴出来了。这里是利用form表单提交。页面定义允许上传格式定义为: .png,.gif,.jpg,.bmp &lt;form name="fileForm" id="fileForm" th:action="@{/nt/attachment/uploadFile4High}" target="hiddenFrame" enc..._web端上传照片时可以放大吗?

推荐一个在线反编译的website_exe在线反编译网站-程序员宅基地

文章浏览阅读3.3k次。最近在研究代码生成器,目前有几个生成java web 代码的generater,但都没有源码,用jd工具反编译,有些类会有error tag,在网上查了一下,说是jd反编译不了,于是找到了这个在线反编译java字节码的网站,使用很简单,上传class文件即可,反编译完成之后还提供下载功能。网址:http://www.showmycode.com/这个成功反编译了很多jd饭编译不了的类,甚是强大_exe在线反编译网站

基于Java+Swing实现中国象棋游戏_java中国象棋-程序员宅基地

文章浏览阅读845次。1、寻找棋盘界面和对应的棋子图片,程序设计棋盘界面和功能菜单2、设计不同的棋子的移动逻辑3、棋子移动时,要有音效4、对局开始前,双方棋子在棋盘上的摆法。5、对局时,由执红棋的一方先走,双方轮流走一步。6、轮到走棋的一方,将某个棋子从一个交叉点走到另一个交叉点,或者吃掉对方的棋子而占领其交叉点,都算走了一着。7、双方各走一着,称为一个回合。8、走一着棋时,如果己方棋子能够走到的位置有对方棋子存在,就可以把对方棋子吃掉而占领那个位置。_java中国象棋

cannot bind 'tcp:5037' 完美解决方法-程序员宅基地

文章浏览阅读10w+次,点赞2次,收藏5次。我们用adb连接Android设备时会出现:adb devicesadb server is out of date. killing…ADB server didn’t ACK* failed to start daemon *error: unknown host service这是因为 adb的端口(5037)被占用了在命令行输入C:\Users\lizy>netstat ..._cannot bind 'tcp:5037

单片机c语言 oxfe,AVR单片机入门及C语言高效设计实践(五)-程序员宅基地

文章浏览阅读853次。ATMEAGl6L的中断系统什么是“中断”?顾名思义中断就是中断某一工作过程去处理一些与本工作过程无关或间接相关或临时发生的事件,处理完后,则继续原工作过程。比如:你在看书,电话响了,你在书上做个记号后去接电话,接完后在原记号处继续往下看书。如有多个中断发生,依优先法则,中断还具有嵌套特性。又比如:看书时,电话响了,你在书上做个记号后去接电话,你拿起电话和对方通话,这时门铃响了,你让打电话的对方稍..._0xfe在单片机中是什么意思

随便推点

银河麒麟服务器v10 sp1 部署.Net6.0 http https_银河麒麟服务器操作系统v10 安装.net 6-程序员宅基地

文章浏览阅读1.1k次。/升级的连接是已从 HTTP 切换到另一个协议(如 WebSocket)的连接。//连接升级后,不会计入 MaxConcurrentConnections 限制。//部署银河麒麟V10 SP1 读取appsettings.json中Kestrel配置。上面示例部署到银河麒麟V10 SP1时,更换银河麒麟V10服务器pfx证书的具体路径。//银河麒麟V10 SP1 解决无法访问静态文件问题。//获取或设置最大打开、升级的连接数。// 长度最好不要设置 null。//获取或设置最大打开的连接数。_银河麒麟服务器操作系统v10 安装.net 6

VSCode Terminal 快捷键切换_vscode terminal 切换-程序员宅基地

文章浏览阅读6.2k次,点赞6次,收藏3次。Ctrl + Shift + P 输入 Preferences: Open Keyboard shortcurs(JSON),输入[ { "key": "ctrl+1", "command": "workbench.action.terminal.focusAtIndex1", "when": "terminalFocus" }, { "key": ..._vscode terminal 切换

大数据千亿级离线数仓项目第六天 OLAP分析和数据可视化_有过万6a11ad-程序员宅基地

文章浏览阅读894次,点赞2次,收藏6次。千亿级数仓项目第06-07天讲义课程目标完成Kylin环境搭建(安装、整合mr引擎)能够使用Kylin进行OLAP分析能够基于Kylin开发Ads层能够使用Superset完成数据可视化Kylin简介Kylin的诞生背景ebay-中国团队研发的,是第一个真正由中国人自己主导、从零开始、自主研发、并成为Apache顶级开源项目Hive的性能比较慢,支持SQL灵活查询,特别慢HBase的性能快,原生不支持SQLKylin是将先将数据进行预处理,将预处理的结果放在HBase中。效率很高_有过万6a11ad

centos7 搭建jira,confluence遇到的坑(无法连接mysql)_confluence will not start up because the build num-程序员宅基地

文章浏览阅读4k次。centos7 搭建jira,confluence遇到的坑(无法连接mysql)2018年05月15日 16:14:01 wq3028 阅读数 3451版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wq3028/article/details/80324505这两周也是在服务器上面搭了好多的东西,我是个做BSP的,感觉这两周变成了运维..._confluence will not start up because the build number in the home directory

组态王7.5SP4版软件与加密狗匹配开发版+运行版使用分享-程序员宅基地

文章浏览阅读3.9k次。组态软件与加密狗匹配开发版+运行版使用分享,组态软件按照文章这样样操作就可以正常打开和运行了。希望对大家有帮助。_组态王7.5

jdk1.8 下载,安装,配置_安装jdk1.8下载-程序员宅基地

文章浏览阅读457次,点赞22次,收藏6次。JDK下载安装配置_安装jdk1.8下载