C++实现单链表按k值重新排序的方法
发布时间 - 2026-01-11 01:01:42 点击率:次本文实例讲述了C++实现单链表按k值重新排序的方法。分享给大家供大家参考,具体如下:

题目要求:
给定一链表头节点,节点值类型是整型。
现给一整数k,根据k将链表排序为小于k,等于k,大于k的一个链表。
对某部分内的节点顺序不做要求。
算法思路分析及代码(C)
思路:将链表分为小于k、等于k、大于k的三个链表,然后再合并。
链表结点定义:
typedef struct Node
{
int data;
struct Node* next;
}node, *pNode;
算法代码:
pNode sortLinkedList(pNode head, int k)
{
pNode sHead = NULL;//小头
pNode sTail = NULL;//小尾
pNode eHead = NULL;//等头
pNode eTail = NULL;//等尾
pNode bHead = NULL;//大头
pNode bTail = NULL;//大尾
pNode temp = NULL;
//拆分链表
while (head != NULL)
{
temp = head->next;
head->next = NULL;
if (head->data < k)
{
if (!sHead){
sHead = head;
sTail = head;
}
else{
sTail->next = head;
sTail = head;
}
}
else if (head->data == k)
{
if (!eHead){
eHead = head;
eTail = head;
}
else{
eTail->next = head;
eTail = head;
}
}
else
{
if (!bHead){
bHead = head;
bTail = head;
}
else{
bTail->next = head;
bTail = head;
}
}
head = temp;
}
//合并链表
if (sTail)
{
sTail->next = eHead;
eTail = (eTail == NULL ? sTail : eTail);
}
if (eTail)
{
eTail->next = bHead;
}
return sHead != NULL ? sHead : (eHead != NULL ? eHead : bHead);
}
希望本文所述对大家C++程序设计有所帮助。
# C++
# 单链表
# k值
# 排序
# 浅析C++中单链表的增、删、改、减
# C++中单链表的建立与基本操作
# C++ 单链表的基本操作(详解)
# 利用C++简单实现顺序表和单链表的示例代码
# C++使用模板实现单链表(类外实现)
# C++使用模板实现单链表
# C++实现单链表删除倒数第k个节点的方法
# C++实现单链表的构造
# C++单链表实现大数加法
# C++实现约瑟夫环的循环单链表
# 链表
# 小头
# 给大家
# 然后再
# 不做
# 所述
# 程序设计
# 整型
# 小尾
# 讲述了
# br
# gt
# strong
# lt
# class
# brush
# temp
# pre
# span
# int
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何实现事件和监听器?(Event & Listener实战)
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
Linux系统运维自动化项目教程_Ansible批量管理实战
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Laravel怎么调用外部API_Laravel Http Client客户端使用
如何用西部建站助手快速创建专业网站?
,交易猫的商品怎么发布到网站上去?
Laravel如何实现用户密码重置功能?(完整流程代码)
Laravel PHP版本要求一览_Laravel各版本环境要求对照
如何在新浪SAE免费搭建个人博客?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
开心动漫网站制作软件下载,十分开心动画为何停播?
在centOS 7安装mysql 5.7的详细教程
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何快速登录WAP自助建站平台?
如何快速搭建二级域名独立网站?
如何自定义建站之星模板颜色并下载新样式?
如何在阿里云完成域名注册与建站?
如何快速搭建个人网站并优化SEO?
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
昵图网官方站入口 昵图网素材图库官网入口
linux写shell需要注意的问题(必看)
Laravel Docker环境搭建教程_Laravel Sail使用指南
Android自定义listview布局实现上拉加载下拉刷新功能
如何在腾讯云服务器快速搭建个人网站?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何在自有机房高效搭建专业网站?
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何快速查询网站的真实建站时间?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何在IIS服务器上快速部署高效网站?
在线制作视频网站免费,都有哪些好的动漫网站?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
大连 网站制作,大连天途有线官网?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
如何用腾讯建站主机快速创建免费网站?
WEB开发之注册页面验证码倒计时代码的实现
如何快速查询域名建站关键信息?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Android利用动画实现背景逐渐变暗
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
再谈Python中的字符串与字符编码(推荐)
如何彻底删除建站之星生成的Banner?
java ZXing生成二维码及条码实例分享

