C语言链表存储数据并排序,c语言求助:怎么根据链表中的某个数据对链表进行排序?...
匿名用户
1级
2008-06-19 回答
#include
/*
* nodeEntry : 节点数据类型
* nodeADT : 节点结构
* linkADT : 链表结构
*/
typedef int nodeEntry;
typedef struct nodeCDT {
nodeEntry entry;
struct nodeCDT *next;
}*nodeADT;
typedef struct linkCDT {
nodeADT head;
}*linkADT;
/*
* InitLink : 初始化链表
* CreateNode : 创建节点
* AppendLink : 添加数据
*/
void InitLink(linkADT *link) {
*link=(linkADT)malloc(sizeof*(*link));
(*link)->head=0;
}
nodeADT CreateNode(nodeEntry entry) {
nodeADT p=(nodeADT)malloc(sizeof*p);
p->entry=entry,p->next=0;
return p;
}
void AppendLink(linkADT *link,nodeEntry entry) {
nodeADT newNode=CreateNode(entry),p;
if (!*link) InitLink(link);
if (!(*link)->head) (*link)->head=newNode;
else {
for (p=(*link)->head;p->next;p=p->next);
p->next=newNode;
}
}
/*
* SortLink : 排序链表
* -------------------
* 通过移动每个节点的指针来完成排序
*/
void SortLink(linkADT link) {
nodeADT pHead,pRear,p,tp;
if (!link) return;
for (pHead=link->head,pRear=0;pHead;pHead=pHead->next) {
for (tp=pHead,p=pHead->next;p;tp=p,p=p->next)
if (pHead->entry>=p->entry)
tp->next=p->next,p->next=pHead,pHead=p,p=tp;
if (!pRear) link->head=pHead;
else pRear->next=pHead;
pRear=pHead;
}
}
/*
* PrintLink : 打印链表
*/
void PrintLink(linkADT link) {
nodeADT p=link->head;
for (;p;printf("%3d",p->entry),p=p->next);
printf("\n");
}
/* 测试 */
void main() {
linkADT link=0;
int a[10]={27,30,42,19,25,28,17,32,14,23},i;
for (i=0;i<10;AppendLink(&link,*(a+i++)));
PrintLink(link);
SortLink(link);
PrintLink(link);
getchar();
}
C语言链表存储数据并排序,c语言求助:怎么根据链表中的某个数据对链表进行排序?...相关推荐
- 【SQL开发实战技巧】系列(七):从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起
系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...
- python如何收集数据的方法有哪些_class类在python中获取金融数据的实例方法
我们搜集金融数据,通常想要的是利用爬虫的方法.其实我们最近所学的class不仅可以进行类调用,在获取数据方面同样是可行的,很多小伙伴都比较关注理财方面的情况,对金融数据的需要也是比较多的.下面就cla ...
- php 相同数据合并单元格,利用for循环实现excel中多列数据合并到一个单元格
详细内容 今天在工作中,老板给我一个任务,把excel表格中的多列数据合并到一列中. 数据如下: 注意:数据从16601到20000,也就是说有两千个网址. 下面为大家介绍几种方法: 第一种:使用wp ...
- 怎样在微信中清理数据存储空间?经验技巧!如何在微信中清除缓存数据信息?
现在微信已经成为我们大家生活中的一款主流聊天软件了,在生活中我们都会使用微信来与朋友家人之间进行聊天互动,在工作中使用微信发布信息与客户同事之间进行交流沟通,在我们大家使用微信的同时,会产生许多的缓存 ...
- 两部手机怎样才能把数据都传过来_如何将旧 iPhone 中的全部数据无缝传输到全新设备上?...
前不久,苹果面向 iPhone.iPad 用户推送了 iOS 12.4 正式版更新,正式推出 iPhone 迁移功能,无需数据线,也无需电脑中介,可直接将数据直接从旧 iPhone 传输至新 iPho ...
- c语言环形存储,环形缓存区bufferC语言实现
buffer[iput]=z; iput = addring(iput); n++; } else printf("Buffer is full\n"); } int main{v ...
- c语言成绩存储的算法思想,C语言算法总结,非常精辟
<C语言算法总结,非常精辟>由会员分享,可在线阅读,更多相关<C语言算法总结,非常精辟(9页珍藏版)>请在人人文库网上搜索. 1.c语言算法摘要2 .牛顿迭代a的平方根[思想摘 ...
- c语言读取txt文件数据乱码,编的学生成绩管理系统 从文件中读取保存数据总会多读入一组乱码数据...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 getch(); return L; } } void SearchData(Stu L) { Stu p; int num; p=L->next; ...
- c语言管理系统的数据存放,编的学生成绩管理系统 从文件中读取保存数据总会多读入一组乱码数据...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 getch(); return L; } } void SearchData(Stu L) { Stu p; int num; p=L->next; ...
- c语言 多文件 学生系统,编的学生成绩管理系统 从文件中读取保存数据总会多读入一组乱码数据...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 getch(); return L; } } void SearchData(Stu L) { Stu p; int num; p=L->next; ...
最新文章
- CIO时代学院院长姚乐:传统行业遇上大数据 拥抱智能化未来
- WINCE6.0远程桌面显示修改
- HTML内嵌式CSS背景图填充满无截断重复
- oracle10g sys密码忘记,Oracle 10g忘记system,sys密码的解决办法。
- 解决IE为7939.com的病毒~
- 微软一站式示例代码库(中文版)2011-03-10版本, 新添加20个示例
- 【C语言指针】 回调函数、冒泡函数模拟实现qsort、指针和数组笔试题解析
- 随想录(35岁后的程序员)
- SAP License:不要让ERP沦为记账工具
- 您如何计算Visual Studio解决方案中的代码行?
- 何川L3管理课_模块4_成果管理
- 熊猫烧香源码--假的:)
- 利用模版元编程将传统冒泡排序性能提升两倍以上
- .net源码解读之StringBuilder
- 【LaTex】 Font “FandolSong-Regular“ does not contain requested(fontspec)Script “CJK“.如何抑制此种警告?
- 数组填空题c语言及答案,C语言程序设计 程序填空题库及答案
- Cisco 交换机的操作
- QTTabBar Windows资源管理器增强插件
- 勒索病毒现状和防御勒索病毒最佳实践(云端和线下个人电脑,服务器都可部署)
- PMP中各种图形解释和使用场景
热门文章
- 飞鸽-http://www.freeeim.com/
- gui 设计的简单计算器 java,编写Java GUI程序,实现一个简单计算器。要求如下: (1)......
- java sendredirect报错_java 中sendredirect()和forward()方法的区别
- R沟通|Bookdown中文书稿写作手册(中)
- Nature Biotechnology | 单细胞转录组不同建库及数据分析方法的测评结果
- fcpx插件:50组唯美梦幻棱镜光晕效果预设MotionVFXmPrism
- Big Sur恢复Catalina ? macOS Big Sur降级的三种方法 !
- NOI大纲 CSP初赛篇·知识大纲 CSP-入门级-NOI大纲
- P2550 [AHOI2001]彩票摇奖(python3实现)
- 第30课 棋盘上的学问 《小学生C++趣味编程》