C语言——分割单向链表

本文的内容是使用C语言分割单向链表,给出一个链表和一个值,要求链表中小于给定值的节点全都位于大于或等于给定值的节点之前,打印原始链表的所有元素和经此操作之后链表的所有元素。
分析:本题只是单向链表的分割,不涉及排序,因此把小于给定值的节点连成一个链表,再把大于等于给定值的节点连成一个链表,然后把两个链表再链接到一起即可形成题目要求的链表。
注意:要记住两个链表各自的头节点,不然最后没办法连接到一起;存放大值的链表最后要指向NULL;两个链表的头节点要动态申请内存,用以保存分割链表后的两个头节点。
在这里插入图片描述
完整的源代码如下。

#include <stdio.h> 
#include <stdlib.h>typedef struct linklist
{int data;struct linklist *next;
}Linklist;Linklist *CreateLinkList()
{int n = 0;Linklist *head,*p,*q;head = NULL;p = (Linklist *)malloc(sizeof(Linklist));printf("input data %d (input 65535 end):",n+1);scanf("%d",&p->data);if(p->data == 65535)return head;while(1){n++;if(n==1)head = p;elseq->next = p;q = p;p = (Linklist *)malloc(sizeof(Linklist));printf("input data %d (input 65535 end):",n+1);scanf("%d",&p->data);if(p->data == 65535)break;}q->next = NULL;return head;
}Linklist *divide(Linklist* head,int x)
{Linklist *p = (Linklist*)malloc(sizeof(Linklist));Linklist *q = (Linklist*)malloc(sizeof(Linklist));Linklist *headp;Linklist *headq;headp = p;headq = q;while(head != NULL){if(head->data < x){p->next = head;p = p->next;}else{q->next = head;q = q->next;}head = head->next;}p->next = headq->next;q->next = NULL;return headp->next;
}void print_linklist(Linklist *head)
{Linklist *p;p = head;if(head != NULL){do{printf("%d ",p->data);p = p->next;}while(p != NULL);printf("\n");}elseprintf("The link list is empty!\n");
}void main()
{Linklist *head;head = CreateLinkList();printf("原链表序列:");print_linklist(head);head = divide(head,10);printf("分割后链表序列:");print_linklist(head);
}

上面程序的结果如下图所示。
在这里插入图片描述
根据上面的运行结果可以看到,代码满足题目的要求。

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

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

相关文章

年薪百万的人怎么做好工作复盘和总结

我们在为谁工作&#xff1f; 在大山宏泰《我们为什么工作》一书中有提到过&#xff1a; 70%左右的人认为工作只是维持生计的存在&#xff1b; 20%左右的人认为工作是个人价值的体现&#xff1b; 不到10%的人才会认为工作是幸福的。 人类的终极幸福有四重&#xff1a;被爱&…

Poly风格模型的创建与使用_unity基础开发教程

Poly风格模型的创建与使用 安装Poly相关组件Poly模型的创建Poly模型编辑 安装Poly相关组件 打开资源包管理器Package Manager 在弹出的窗口左上角Packages选择Unity Registry 搜索框搜索 Poly 搜索结果点击Polybrush 点击右下角 Install 同时也别忘了导入一下模型示例&#…

openpnp - 74路西门子飞达控制板(主控板STM32_NUCLEO-144) - 验证

文章目录 openpnp - 74路西门子飞达控制板(主控板STM32_NUCLEO-144) - 验证概述笔记重复数字IO的问题想法手工实现程序实现确定要摘掉的数字重合线自动化测试的问题测试程序的场景测试程序的运行效果测试程序实现备注END openpnp - 74路西门子飞达控制板(主控板STM32_NUCLEO-14…

Jenkins的一些其他操作

Jenkins的一些其他操作 1、代码仓库Gogs的搭建与配置 Gogs 是一款极易搭建的自助 Git 服务&#xff0c;它的目标在于打造一个最简单、快速和轻松的方式搭建 Git 服务。使用 Go 语言开发的它能够通过独立的二进制进行分发&#xff0c;支持了 Go 语言支持的所有平台&#xff0…

find和grep命令的简单使用

find和grep命令的简单使用 一、find例子--不同条件查找 二、grep正则表达式的简单说明例子--简单文本查找例子--结合管道进行查找 一、find find 命令在指定的目录下查找对应的文件。 find [path] [expression]● path 是要查找的目录路径&#xff0c;可以是一个目录或文件名…

asp.net core mvc 之 依赖注入

一、视图中使用依赖注入 1、core目录下添加 LogHelperService.cs 类 public class LogHelperService{public void Add(){}public string Read(){return "日志读取";}} 2、Startup.cs 文件中 注入依赖注入 3、Views目录中 _ViewImports.cshtml 添加引用 4、视图使用…

软文推广中媒体矩阵的优势在哪儿

咱们日常生活中是不是经常听到一句俗语&#xff0c;不要把鸡蛋放在同一个篮子里&#xff0c;其实在广告界这句话也同样适用&#xff0c;媒介矩阵是指企业在策划广告活动时&#xff0c;有目的、有计划的利用多种媒体进行广告传播&#xff0c;触达目标用户。今天媒介盒子就来和大…

Hbase 迁移小结:从实践中总结出的最佳迁移策略

在数据存储和处理领域&#xff0c;HBase作为一种分布式、可扩展的NoSQL数据库&#xff0c;被广泛应用于大规模数据的存储和分析。然而&#xff0c;随着业务需求的变化和技术发展的进步&#xff0c;有时候我们需要将现有的HBase数据迁移到其他环境或存储系统。HBase数据迁移是一…

缓存穿透、缓存击穿、缓存雪崩

目录 一、缓存的概念 1.为什么需要把用户的权限放入redis缓存 2.为什么减低了数据库的压力呢&#xff1f; 3.那么什么情况下用redis,什么情况下用mysql呢&#xff1f; 4.关于权限存入redis的逻辑&#xff1f; 二、使用缓存出现的三大情况 1.缓存穿透 1.1概念 1.2出现原…

2023/11/15JAVA学习

如何多开一个程序

企业设备巡检的痛点和解决方案

在设备巡检过程中&#xff0c;企业常面临多种痛点。首先&#xff0c;信息管理不足是一个关键问题&#xff0c;企业往往缺乏全面、准确的设备信息记录&#xff0c;这导致巡检工作缺乏针对性和效率。其次&#xff0c;巡检流程的非标准化使得巡检结果出现不一致&#xff0c;重要的…

RGB转Bayer,一个小数点引发的血案

前几天写了一个RGB数据转Bayer格式的函数&#xff0c;经过测试功能正常。后来把这个函数用到一个数据库构建中&#xff0c;结果数据库出来的结果一直是一张黑图&#xff0c;追查了好几个小时&#xff0c;总算把这只虫子找出来了&#xff0c;原来是一个整数后面的小数点作祟。 …

Docker 和 Kubernetes:技术相同和不同之处

Docker和Kubernetes是当今最流行的容器化技术解决方案。本文将探讨Docker和Kubernetes的技术相似之处和不同之处&#xff0c;以帮助读者更好地理解这两种技术。 Docker和Kubernetes&#xff1a;当今最流行的容器化技术解决方案 在当今的IT领域&#xff0c;Docker和Kubernetes无…

阿里云99元VS腾讯云88元,双11云服务器价格战,谁胜谁负?

在2023年的双十一优惠活动中&#xff0c;阿里云推出了一系列令人惊喜的优惠活动&#xff0c;其中包括99元一年的超值云服务器。本文将带您了解这些优惠活动的具体内容&#xff0c;以及与竞争对手腾讯云的价格对比&#xff0c;助您轻松选择最适合的云服务器。 99元一年服务器优…

23000 个恶意流量代理的 IPStorm 僵尸网络被拆除

美国司法部今天宣布&#xff0c;联邦调查局取缔了名为 IPStorm 的僵尸网络代理服务的网络和基础设施。 IPStorm 使网络犯罪分子能够通过世界各地的 Windows、Linux、Mac 和 Android 设备匿名运行恶意流量。 与此案相关的俄罗斯裔摩尔多瓦籍公民谢尔盖马基宁 (Sergei Makinin)…

传统工艺的数字时代转变:十八数藏的文化创新

在传统工艺和数字时代的交汇之处&#xff0c;十八数藏以其独特的文化创新走在了前列。这场数字时代的转变为传统工艺注入了新的生命和活力。 十八数藏的文化创新并非简单的数字应用&#xff0c;而是一场深刻的转变。通过数字技术&#xff0c;传统工艺被赋予了新的表达方式&…

【echarts】实现单线与多线滚轮联动、隐藏拖拽、关闭动画

单线滚轮联动 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>ECharts DataZoom</title><script src"https://cdn.jsdelivr.net/npm/echarts5.2.0/dist/echarts.min.js"></script> </hea…

一文图解爬虫_姊妹篇(spider)

—引导语 爬虫&#xff0c;没有一个时代比当前更重视它。一个好的爬虫似乎可以洞穿整个互联网&#xff0c;“来装满自己的胃”。 接上一篇&#xff1a;一文图解爬虫&#xff08;spider&#xff09; 博主已初步对爬虫的“五脏六腑”进行了解剖。虽然俗称“爬虫”&#xff0c;但窃…

【科研新手指南3】chatgpt辅助论文优化表达

chatgpt辅助论文优化表达 写在最前面最终版什么是好的论文整体上&#xff1a;逻辑/连贯性细节上一些具体的修改例子 一些建议&#xff0c;包括具体的提问范例1. 明确你的需求2. 提供上下文信息3. 明确问题类型4. 测试不同建议5. 请求详细解释综合提问范例&#xff1a; 常规技巧…

区域入侵AI算法如何应用在工地场景,保卫工地施工安全?

在工地、厂区等施工场所&#xff0c;安全保障是必不可少的&#xff0c;特别是在人工智能技术日益成熟的今天&#xff0c;如何利用旭帆科技AI智能视频中的区域入侵算法助力智慧工地、保障工地安全呢&#xff1f; 1、建筑物周界安全 TSINGSEE青犀区域入侵算法可以用于监控建筑物…