首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我已经做了一个程序来显示学生的姓名和身高在C++中使用队列链表,现在我想以降序显示它,我不知道如何

在C++中使用队列链表来显示学生的姓名和身高,并以降序显示,可以按照以下步骤进行操作:

  1. 创建一个学生类,包含姓名和身高两个属性。
  2. 创建一个队列链表类,用于存储学生对象。
  3. 在队列链表类中实现插入操作,将学生对象按照身高降序插入队列链表中。
  4. 在队列链表类中实现显示操作,按照降序遍历队列链表,依次输出学生的姓名和身高。
  5. 在主函数中,创建队列链表对象,并添加学生对象。
  6. 调用队列链表对象的显示操作,即可以降序显示学生的姓名和身高。

以下是示例代码:

代码语言:txt
复制
#include <iostream>
#include <string>

using namespace std;

// 学生类
class Student {
public:
    string name;
    int height;

    Student(string n, int h) {
        name = n;
        height = h;
    }
};

// 队列链表类
class QueueLinkedList {
private:
    struct Node {
        Student student;
        Node* next;
    };

    Node* front;
    Node* rear;

public:
    QueueLinkedList() {
        front = nullptr;
        rear = nullptr;
    }

    // 插入操作(按照身高降序插入)
    void insert(Student student) {
        Node* newNode = new Node;
        newNode->student = student;
        newNode->next = nullptr;

        if (front == nullptr) {
            front = newNode;
            rear = newNode;
        } else {
            Node* current = front;
            Node* previous = nullptr;

            while (current != nullptr && current->student.height >= newNode->student.height) {
                previous = current;
                current = current->next;
            }

            if (previous == nullptr) {
                newNode->next = front;
                front = newNode;
            } else {
                previous->next = newNode;
                newNode->next = current;
            }

            if (current == nullptr) {
                rear = newNode;
            }
        }
    }

    // 显示操作(按照降序显示)
    void display() {
        Node* current = front;

        while (current != nullptr) {
            cout << "姓名:" << current->student.name << ",身高:" << current->student.height << endl;
            current = current->next;
        }
    }
};

int main() {
    QueueLinkedList queue;

    // 添加学生对象
    queue.insert(Student("张三", 180));
    queue.insert(Student("李四", 175));
    queue.insert(Student("王五", 185));

    // 以降序显示学生的姓名和身高
    queue.display();

    return 0;
}

以上代码实现了一个使用队列链表在C++中显示学生姓名和身高,并以降序显示的程序。你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python3.5程序设计

广泛标准库:Python最大优势之一是丰富库,跨平台UNIX,WindowsMacintosh兼容很好。...可移植:基于其开放源代码特性,Python已经被移植(也就是使其工作)到许多平台。 可嵌入: 可以将Python嵌入到C/C++程序,让你程序用户获得"脚本化"能力。...Python 是交互式语言: 这意味着,您可以一个Python提示符,直接互动执行写你程序。 Python 是面向对象语言: 这意味着Python支持面向对象风格或代码封装在对象编程技术。...Python 是初学者语言:Python 对初级程序员而言,是一种伟大语言,支持广泛应用程序开发,从简单文字处理到 WWW 浏览器再到游戏。 读取带有表头文件,转化为字典形式 #!...项目要求:  (1)显示所有学生信息  (2)新增一个学生信息  (3)修改学生年龄  (4)根据学号删除学生  (5)按照姓名查找  (6)按照学号进行升序降序排列  (7)功能菜单:该功能菜单供用户选择相应功能

67220

根据身高重建队列

其实如果大家认真做了135. 分发糖果,就会发现此题有点点像。 135. 分发糖果就强调过一次,遇到两个维度权衡时候,一定要先确定一个维度,再确定另一个维度。...图中{5,2} 为例: 406.根据身高重建队列 按照身高排序之后,优先按身高peoplek插入,后序插入节点也不会影响前面已经插入节点,最终按照k规则完成了队列。...贪心系列开篇词关于贪心算法,你该了解这些!已经讲过了这个问题了。...关于本题使用数组还是使用链表性能差异,贪心算法:根据身高重建队列(续集)详细讲解了一波 总结 关于出现两个维度一起考虑情况,我们已经做过两道题目了,另一道就是135. 分发糖果。...分发糖果难不少,其贪心策略也是比较巧妙。 最后给出了两个版本代码,可以明显看是使用C++list(底层链表实现)比vector(数组)效率高得多。

33120

Python数据分析—子查询

这在数据分析过程必不可少,本节教大家如何在python对数据框进行一些子查询操作。...1 查询最大年龄学生姓名 如果我们查询最大年龄学生姓名,该怎么办? 可以先查询所有学生最大年龄,再去查询该年龄对应学生姓名。...首先查询所有男生最大年龄,把赋值给一个变量,具体语句如下: male_max_age = date_frame[date_frame.gender == '男']['age'].max() 得到结果如下...3 查询身高前几学生信息 如果我们查询身高前几学生信息。 可以先对学生身高进行去重、排序,再用head函数找出排名前几学生身高,最后用isin函数查找这些学生信息。...假设要找身高排名前三学生信息。

47910

Java私活200元,完成JavaSwing学生成绩管理系统(三)

,要求: 自定义数据库文件格式 需求分析 别人眼中:要写java代码 还要写连接数据库代码 以及创建表、写注释 编写文档等等 眼中:创建一个javaswing项目并套用之前写好学生成绩管理各种属性...例:管理员 是否查询 增删改查查找功能,如果查询设为【是】,则该属性会作为查询条件,例:可以通过姓名查找学生 是否统计 系统查询功能,对于查出数据会进行自动统计,例:每天营业额设为统计,将自动对查询出来数据求和...是否平均 系统查询功能,对于查出数据会进行自动平均,例:学生身高设为平均,将自动显示平均身高 更新页显示 修改/更新时候,这个字段显示,例:学生学号不可修改,就可以设为否,默认是否 可更新...外键 这一个内容要单独理解,配置简单,但是功能比较多,拿下图学生成绩管理系统来说: 前提是我们已经添加了学生:Student对象课程:Course对象,现在添加这个成绩对象 1、 看下图,课程学生对应外键已经填上了内容...3、 便利查询,C#Java查询框是可以设置为下拉框,以下例子,因为课程学生都是外键而且他们是查询条件,所以生成成绩管理系统,查成绩时候,可以通过下拉框选择查询某个学生、课程成绩

66710

Linux进程概念(一)

操作系统如何管理硬件数据 继续学校这个话题,学校学生多,用特殊软件去管理会更好,比如说: 定义一个学生结构体>姓名,年龄,身高,体重,成绩,联系方式等等… 然后将他们个人信息用链表进行关联,这个时候就可以全方面的管理学生...,比如A学校B学校进行篮球比赛,A校长B校长首先会进行学生信息开始查找,180身高为标准照学生;或者学校找应该被开除学生,顶一个标准,留级不能超过三次,那么在这个链表中找到异常学生就会将他直接踢出去...也就是说,想要管理学生,收据学生数据信息,然后先描述(学生姓名,年龄等等…),然后再进行组织(链表连起来学生信息),这个就是管理基本逻辑。...,定义出来结构体指向一个进程地址进行控制,然后通过链表方式连接起来,这样就能很好管理每个进程了: 操作系统如果结束一个进程就会通过控制模块找到该进程地址然后先释放掉这个进程释放掉该程序对应模块...他说作用是创建一个子进程,并且有两个返回值。 很奇怪,之前学C/C++语言时候从未听过如此离谱的话,现在一个测试一下。

43100

一万五千字C++STL【容器】详解 (全网最详细)

vector底层即为array数组,保存了一个严格顺序排列特定数量元素 2.1.3 顺序性容器什么场合使用?...这里写了一个仿函数,实际上就相当于一个类,v1 > v2就相当于前一个数比后一个数字大,也就是降序排列 上述例子是一个内置数据类型,其实仿函数也可以写成自定义数据类型,比如定义一个Person类,有年龄身高两个属性...,使用其insert()进行插入就需要使用pair对组实现,不然是插入不进去了,要分别传入键值实值,这里不是按照键值顺序插入,但是看运行结果,最后显示出来还是会按照顺序排列 map<int...(背景设定,不符合现实),员工信息有姓名,工资,所属部门,部门有三个种类,分别是策划部、美术部研发部,现在要求分部门显示员工所有信息。...STL就像是C++很优秀一个作品,有了陪伴,许多底层数据结构算法都不需要自己重新安装轮子,站在前人肩膀上面,快速发展。

2K20

浅谈冯诺依曼体系操作系统

假如我们校长曾经是个教C语言老师,校长C语言很好,于是,校长写了一个 结构体 对每个学生信息进行管理: struct Student{ char name[20];//姓名 char sex...这时校长想到了在学习数据结构时学过——链表使用 链表学生信息进行关联 起来: struct Student{ char name[20];//姓名 char sex[5];//性别 int...然后校长想到,写一批 对链表增删改查 代码,这样,当学校需要一个C++同学参加比赛,那么校长直接遍历这个链表,找到C++最好同学去参加即可。   ...这样以来,校长所有的决策工作,就变为了对链表增删查改!   其实这也就是对管理一个 计算机建模 过程,这个过程用六个字总结就是:先描述再组织! 如何理解六个字?   ...操作系统不知道你是好人坏人,干脆把大家都当为坏人,你只能通过给你接口进行访问,内核数据结构属性用户不能直接更改,需要通过系统调用接口间接更改。

13310

大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)

属性:姓名,年龄,身高学生编号方法:吃饭,睡觉,喊叫,学习教师类:Teacher属性:姓名,年龄,身高,教师编号方法:吃饭,睡觉,喊叫,教学员工类:Emploee属性:姓名,年龄,身高,员工编号方法:...子类 继承自 父类 狗类属性:姓名,年龄,身高方法:吃饭,睡觉,喊叫我们继承关系,是合理范围中进行抽取 ,抽取出子类父类关系上面的案例学生类/教师类/员工类 继承 自 人类...如果构造器没有显示调用父类构造器的话,那么第一行都有super(),可以省略不写) 如果构造器已经显示调用super父类构造器,那么第一行就没有默认分配super()构造器,super...关联可以是单向、双向。表现在代码层面,为被关联类B属性形式出现在关联类A,也可能是关联类A引用了一个类型为被关联类B全局变量。...UML类图设计,聚合关系空心菱形加实线箭头表示。​

40361

C语言课程设计——学生成绩管理系统(详细报告)

希望大家多多关照,我们一起成长一起进步,也希望大家多多支持鸭,喜欢就给我一个关注吧! 本课程设计编程部分所使用开发软件是C-Free,可以参考使用教程,滑到底部可以获取所有源代码。...用户需求 (1)学生信息包括学号、姓名、班级所学三门课程(数学、英语、计算机)成绩 和平均成绩(每位学生平均分各科平均分)以及各科成绩最低分最高分、及格 率; (2)学生信息管理系统菜单方式工作...; (6)输出学生信息表(全部学生成绩信息显示或按班级显示学生成绩信息); (7)用户使用过程能够要有容错处理。...1.2 用户目的 设计一个学生成绩管理系统,使之能提供以下功能: (1)添加学生信息; (2)查询学生信息(分别按学号姓名); (3)对学生成绩进行排序(按总分降序); (4)修改学生信息;...; 各科最高分,无小数点; 处理过程各项可以作为一个学生不同属性进行处理; 因为数组长度是有限制链表长度是没有限制,系统中所存储学生信息长度是不固定,所以学生信息通过链表存储

2.9K20

数据全裸时代,你隐私有多容易获取?

首先学生查看自己四六级成绩需要两个信息:1 姓名;2 准考证号;然后去中国高等教育学生信息网,输入相应信息即可查看。 ? 所以如果你想要查看一位学生四六级成绩,只需要知道姓名准考证号即可。...但不管在座各位是已经出来工作的人士,还是还在上学学生,想要获取任意一个学校学生姓名名单,是件喝水一样简单事。因为有很多学校会把录取学生信息,放在自己官网上。...下图就是在网上随便搜索某个大学,找到艺术类 2019 新生名单。 ? 姓名知道了,我们现在就差一个准考证号就可以知道某位同学四六级成绩。 我们要如何知道一位同学准考证号?...上图是输入某位同学姓名准考证号,发送请求得到四六级信息,查询到信息图片显示完全一致。...现在的人热衷社交软件上晒自己心情各种照片,但有太多的人不知道如何保护自己隐私,一些关键信息根本不打码,分享图片也不进行处理。而有时候往往就是这些小细节把你个人隐私暴露。

1.2K20

C语言图书信息管理系统

data是void*呢,谭浩强C语言不是这样教啊 void类型是空类型,可以转成任意一种类型,你不知道你插入数据结构体是什么,或者说你要插入多种数据结构体,确定结构体已经不能够满足需求了,需要定义...核心层:用户管理 啊~当时想着用双链表实现学生信息管理系统来着,码着码着就想把图书信息管理系统也码下来,比较学生信息管理系统已经烂大街了,上个学生信息管理系统知乎都有2000赞了 #define...甚至用户信息少可怜,有点用处就是权限了,然后看到deroy_data里面的void* data段了吗,没错,就是告诉你们,这个是扩展功能,可扩展用户其他信息,这个就不实现了,比较代码多了,你们看着挺烦...然后这个结构体里面的函数指针,就相当于C++里面的方法,可以指向一个功能函数 然后就和之前学生信息管理系统差不多了~ /*学生信息管理系统*/ int system_proxy_stu(deroy_list_pt...都是围绕着之前设计链表实现,详情可以看原码 这其实就是将用户管理代码复制过来,改void *data所指向结构体deroy_book,几乎是一模一样,所以说这是个模板,是个框架,框架定死了

1.1K20

程序员零基础速成SQL

没有实习练手机会情况下,如何在短时间快速上手SQL对于在校学生或者非技术人员都是相当重要。...,需要使用函数order by,再看一个例子:查询每个男性学生学号、姓名年龄,并按照学号降序排列。...例如,有这么一个业务查询任务:限定学生表学号小于等于6一批学生,查询每门课最高成绩(最高成绩低于70分课程不显示),然后根据课程最高成绩降序排列取前两条记录。查询SQL如下: ?...order by首先执行,按照某个字段进行排序(desc 关键字表示降序),这部分excel排序很相似。最后我们使用limit修改结果展示条数。 ?...查询结果 详细介绍各模块细节 之前我们已经一个例子介绍了SQL语法顺序执行顺序,想必现在已经知道了一个完整SQL包括条件子句(关键字where)、分组查询(关键字group by)、字段选择

1.5K10

2018国银联银星实习生面试经验

”懒人经济“利与弊 首先解释一下懒人经济:就是我们常用点外卖,淘宝,快递等一系列宅宿舍不用出门活动,我们组十二个人,排在十一位,九个认为利大于弊(方便快捷,节约时间,促进大学生创业等),三个认为弊大于利...,外卖食品安全等不到保障,,,,等自由发挥啦,后面还补充了从商家角度考虑弊端),最后发现out了1号(个人觉得表现很好妹子,长也好看,不知道为啥),还有2号(老是抢着总结) 2.二面:技术面(2V1...) 简短自我介绍项目问题后主要问C++和数据库 C++: (1)重载重写区别,重载函数重载符号 (2)隐式转换显示转换 (3)线程进程区别 (4)数组链表区别 (5)const...static区别   (6)  手写快速排序代码 数据库: (1)什么是事务   (2)  什么是索引   (3)  手写sql语句,找出所有学生数学成绩大于60学生并统计 (4)数据库隔离级别...  点击作者姓名与作者大佬交流~ 作者:七月恋堇 来源: 牛客网(www.nowcoder.com) - 互联网名企笔试真题 - 校招求职笔经&面经 - 程序员/产品/运营求职实习信息 - 程序员/产品

89300

决定你是否能进字节几道题

,具有良好分析和解决问题能力 具有良好团队合作精神积极主动沟通意识 加分项 有安全产品开发背景优先 比较了解安全开发、安全测试、漏洞检测等安全知识 3 面试 面试官简单确认候选人姓名并询问侯获选人当前工作地之后...3.3 面试题三 给定一个链表链表把 L 个节点到 R 个节点这一部分进行反转。...朋友一,这不简单嘛,力扣已经刷过原题(合并两个已升序排列链表),这道题只需要 把链表 B 反转一下,这是链表 B 就有序了,这样不就跟力扣原题完全一毛一样了嘛,心中一顿窃喜,于是刷刷刷地写完了。...朋友想了,好像也是,还要考虑 链表 B 每个节点值放到链表 A 什么位置,这还得遍历整个链表 B 链表 A,并跟面试官说了。 面试官说这就是本题难点。 解题思路 考虑几种特殊情况。...面试官笑着说道 这道题其实是欺负你们这种已经工作了,那些学生有时间,每天可以刷题,刷得很熟练。

66550

JavaSE综合项目演练

大家好,又见面了,是你们朋友全栈君。 光阴似箭日月如梭,大家学习已经有了一段时间了,转眼间,从刚开始如何配置JDK已经到了现在快学完网络编程了。...学了这么多,眼看就要进入下一个阶段了,数据库编程了,那么进入下个阶段前,我们完成一个综合性比较强结业项目,告别JavaSE阶段,学完JavaSE,大家已经对编程这块相信已经有了一个很深理解,但是仅仅是...) 项目启动控制台打印如下: 是管理员 是老师 学生 常用工具 显四三个菜单,用户选择对应序号进行对应操作和显示子菜单。...,最好能保存到文件,下次启动程序直接去读取使用,不用每次都输入。...完成过程要求每个方法每行代码都有相关注释 控制台打印相关信息布局要求美观,简单,一目了然。

36230

C语言学生成绩管理系统详解

不知道发了这篇博客会不会认为抄袭…害怕.jpg 一、系统概述 使用单向链表和文件作为基本数据结构,设计一个学生成绩管理程序,管理某学校学生成绩。...//学生成绩表每行输出一个学生信息(依次为学号、姓名、性别、成绩、等级名次,各项间1个空格隔开), //各等级人数分行输出。...学生按成绩降序排序,再计算链表每个结 点名次,最后保存(学号升序)到文件。...//学生成绩表每行输出一个学生信息(依次为学号、姓名、性别、成绩、等级名次,各项间1个空格隔开), //各等级人数分行输出。...//学生成绩表每行输出一个学生信息(依次为学号、姓名、性别、成绩、等级名次,各项间1个空格隔开), //各等级人数分行输出。

2.7K20

力扣406——根据身高重建队列

这道题主要涉及是找规律快速排序,优化时需要考虑 Java 数据结构特性。 原题 假设有打乱顺序一群人站成一个队列。...每个人由一个整数对(h, k)表示,其中h是这个人身高,k是排在这个人前面且身高大于或等于h的人数。编写一个算法重建这个队列。 注意: 总人数少于1100人。...其次,针对最终结果输出,之前考虑用单向链表,是因为相比于数组每次插入时需要复制,链表插入比较简单,只需要将地址换掉即可。...但链表找元素过程耗时较长,数组可以直接利用下标计算出目标位置,且 Java ArrayList add(int index, E element),其复制方法是 native 类型,因此效率较高...总结 以上就是这道题目解答过程了,不知道大家是否理解了。这道题主要涉及是找规律快速排序,优化时需要考虑 Java 数据结构特性。

27720

Python 实现简易版成绩管理系统

上一次,公众号介绍了如何使用 Python 实现单链表,下面让我们一探单链表简单应用:命令行,实现简易版成绩管理系统。...如果不存在的话,就新建一个。如果存在的话,就按行读取数据。其中,eval函数将读取字符床解析为字典。然后,将学生信息存储链表。...其一,我们要确保学生 id 不能重复。当我们希望向链表添加数据时,首先要迭代整个链表,判断要添加元素 id 是否已经链表存在。...由于姓名之类信息有可能会重复,而我们已经确保学生 id 唯一性。...也就是说,每一轮排序,至少确保有一个元素正确位置。这样接下来循环,就不需要考虑已经排好序元素了,每次内层循环次数都会减一。

1.3K31

​LeetCode刷题实战406:根据身高重建队列

其实若是你们认真作了贪心算法:分发糖果,就会发现此题有点点像。ide 贪心算法:分发糖果就强调过一次,遇到两个维度权衡时候,必定要先肯定一个维度,再肯定另外一个维度。...图中{5,2} 为例: 按照身高排序以后,优先按身高peoplek插入,后序插入节点也不会影响前面已经插入节点,最终按照k规则完成了队列。...贪心系列开篇词关于贪心算法,你该了解这些!已经讲过了这个问题了。...vector是很是费时C++vector(能够理解是一个动态数组,底层是普通数组实现)若是插入元素大于预先普通数组大小,vector底部会有一个扩容操做,即申请两倍于原先普通数组大小,而后把数据拷贝到另外一个更大数组上...因此使用vector(动态数组)insert,是费时,插入再拷贝的话,单纯一个插入操做就是O(n^2)了,甚至可能拷贝好几回,就不止O(n^2)了。

28530

C++】继承

然后呢,还想定义一个学生类,那此时还需要重新从0开始定义一个类吗? 当然也是可以。但是像这种情况,使用继承就会非常香。 为什么这种情况可以使用继承呢?...相信说到这里,大家对于C++中继承概念已经有了一定理解了,那继承语法是怎样呢?我们如何去定义一个继承类呢?...我们来看一下是不是不可见: 现在将Person成员变量都变成私有的 然后Student里面再加一个成员函数 此时程序是可以正常运行 但是如果访问继承下来Person...(子类成员函数,可以使用 基类::基类成员 显示访问)。 我们继续,刚才是子类父类中出现同名成员变量,那如果是出现同名成员函数呢?...应该是一样,我们上面说了继承体系只有一个静态成员 它们地址是一样。 那来看这样一个问题: main函数定义了一些对象,现在统计一些总共个数。

10210
领券