#include <iostream>
using namespace std;
struct student
{int num;char name[10];float score[3];float sum;student *next;
};void main()
{student a[5];student *h, *curr, *temp, *last;  //h头指针,curr当前指针,last当前指针的上一个指针(curr的上一个指针)for (int i = 0; i < 5; i++){cout << "student" << i + 1 << ":"<<endl;cin >> a[i].name >> a[i].num >> a[i].score[0] >> a[i].score[1] >> a[i].score[2];a[i].sum = a[i].score[0] + a[i].score[1] + a[i].score[2];}h = a;for (int i = 0; i<4; i++)a[i].next = &a[i + 1];a[4].next = NULL;for (int j = 0; j<4; j++){curr = h;for (int i = 0; i<4 - j; i++){if (curr->sum>curr->next->sum){if (i == 0)  //将第一个结点和第二个结点交换,此时需要改变头指针{temp = h;h = h->next; //将头指针设为第二个节点temp->next = h->next; //令第一个节点后面接第三个节点h->next = temp; //令第二个节点后面接第一个节点curr = h->next;continue;}else  //交换curr和curr->next指针{last = h;for (int k = 0; k<i - 1; k++)last = last->next; //找出curr的上一个指针temp = curr;  //原理和上面交换第一二个结点是一样的,将上面i==0的代码中的h替换成curr即可得到下面的代码curr = curr->next;temp->next = curr->next;curr->next = temp;last->next = curr; //将上一个指针和交换后的curr指针相连}}curr = curr->next;}}//打印排序后的信息cout << "num" << '\t' << "name" << '\t' << "score1" << '\t' << "score2" << '\t' << "score3" << '\t' << "sum" << endl;for (int i = 0; i<5; i++){cout << h->num << '\t' << h->name << '\t' << h->score[0] << '\t' << h->score[1] << '\t' << h->score[2] << '\t' << h->sum << endl;h = h->next;}}

C++对单向链表进行排序相关推荐

  1. C语言实用算法系列之学生管理系统_单向链表内操作_选择排序

    单向链表实现 #include <stdio.h> #include <malloc.h>typedef int DATA;struct SNode {DATA data;SN ...

  2. c语言链表不带头节点的排序,不带头结点的单向链表排序——插入排序(C语言)...

    LinkList* LinkListInsertSort(LinkList* pHead) { LinkList *pFirst = (LinkList *)NULL; /* 原链表剩下未排序节点的头 ...

  3. C++11中std::forward_list单向链表的使用

    std::forward_list是在C++11中引入的单向链表或叫正向列表.forward_list具有插入.删除表项速度快.消耗内存空间少的特点,但只能向前遍历.与其它序列容器(array.vec ...

  4. 单向链表的有关操作(链式存储结构)

    ⑴随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序). ⑵遍历单向链表. ⑶把单向链表中元素逆置(不允许申请新的结点空间). ⑷在单向链表中删除所有的偶数元素结点. ⑸编写在非递减有序链表 ...

  5. c++使用单向链表存储一组有序数据_数据结构笔试题基础

    第一章 数据结构与算法 一.算法的基本概念 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法. 1.算法的基本特征:可行性,确定性,有穷性,拥有足够的情报. 2.算法的基本要素:算法中对 ...

  6. c++使用单向链表存储一组有序数据_初试攻略丨计算机考研中数据结构知识点总结,硬核!...

    点击蓝字的小伙伴奖励酥鸡哦 苏世计算机考研,程序猿专属的学习分享社区 [声明:本文为原创文章,未经同意,严禁转载和抄袭,违者将追究其法律责任] 正文字2607,预计阅读7分钟 / 写在前面的话 / 初 ...

  7. hashmap是单向链表吗_HashMap源码大剖析

    本文目录哈希表的由来散列技术Map家族子类比较 HashMap与HashTable的区别? ConcurrentHashMap和Hashtable的区别? 同步集合与并发集合? HashMap存储结构 ...

  8. c++ 链表_链表(单向链表的建立、删除、插入、打印)

    线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构 非线性结构:不满足线性结构的数据结构 链表(单向链表的建立.删除.插入.打印) 1.链表一般分为: 单向链表 双 ...

  9. C语言随笔小算法:单向链表

    C语言随笔小算法:单向链表 参考链接: 代码参考:https://blog.csdn.net/go_sann/article/details/80508284 原理参考:https://blog.cs ...

最新文章

  1. centos6.0下ffmpeg的安装编译经历
  2. AutoCAD.net: DXF群码
  3. popup java_PoPup
  4. 《Office 365 开发入门指南》
  5. Android之底部Dialog里面放EditText点击布局顶上去效果
  6. idea 找不到或无法加载主类_解决IDEA中Groovy项目no Groovy library is defined的问题
  7. 【转】Dynamics 365 Customer Engagement中插件的调试
  8. 【51nod - 1108】距离之和最小 V2(曼哈顿距离,中位数性质)
  9. 制作Slider组件
  10. DTS-SHOP微信小程序多店铺商城平台java源码
  11. 寻宝处理器的引人入胜之旅——《大话处理器》新书出炉
  12. 【车联网】一文了解5G在车联网中的应用
  13. 基础计算机构,基础计算与设计
  14. vue cli3 搭建项目 使用vue-router 以及 element-ui
  15. QT学习之文件读写操作
  16. 三星4k3d电视测试软件,三大硬性指标 揭开伪4K电视真实面目
  17. ndows优化大师 免费版,Windows优化大师
  18. powerdesign生成SQL
  19. 演讲实录丨侯晓迪 机器视觉:从跑分到跑路
  20. html标签设计视频音量,如何在HTML5视频标签只添加音量控制

热门文章

  1. c语言数据类型_C语言基础数据类型
  2. MyFlash——美团点评的开源MySQL闪回工具
  3. day01『NLP打卡营』实践课1:词向量应用演示
  4. 京东2020算法工程师0824笔试题整理
  5. Pycharm使用远程服务器运行代码
  6. 图灵奖获得者、信息安全常青树Adi Shamir:从密码学到AI对抗性样本研究|智源大会嘉宾风采...
  7. Python总结:RuntimeError: matplotlib does not support generators as input
  8. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设置浮动和偏移
  9. yii2.0AR两表联查
  10. 关于Cocos2d-x的专属数据类型