- 博客(53)
- 收藏
- 关注
原创 DS内排—2-路归并排序
对每组测试数据,输出2-路归并排序的每一趟排序结果。每组测试数据的输出之间有1空行。每组测试数据:数据个数n,后跟n个字符串,字符串不含空格。输入一组字符串,用2-路归并排序按字典顺序进行降序排序。
2025-01-12 19:43:42
220
原创 DS内排—堆排序
给定一组数据,使用堆排序完成数据的降序排序。每趟交换、筛选后的数据序列,输出格式见样例。数据个数n,n个整数数据。初始创建的小顶堆序列。
2025-01-12 19:40:26
328
原创 邻接矩阵存储图的深度优先遍历
第一行n为顶点数,第二行至第n+2行为其邻接矩阵表示形式,最后一行为遍历的起始点。试实现邻接矩阵存储图的深度优先遍历。
2024-12-30 11:05:03
259
原创 DS二叉树--基于数组存储的构建
本题IO模式为标准输入/输出(Standard IO),你需要从标准输入流中读入数据,并将答案输出至标准输出流中。任意二叉树可以根据完全二叉树性质保存在一个数组中。已知二叉树的数组存储,用程序构建该二叉树。第二行起输入二叉树的数组存储结果,空树用字符‘0’表示,输入t行。第一行输入一个整数t,表示有t个测试数据。逐行输出每个二叉树的先序遍历结果。提示:用递归方法或非递归都可以。数组的数据由大写字母和0表示。
2024-12-23 20:58:25
332
原创 DS哈希查找—线性探测再散列
定义哈希函数为H(key) = key%11,输入表长(大于、等于11)。输入关键字集合,用线性探测再散列构建哈希表,并查找给定关键字。对k个待查关键字,分别输出:0或1(0—不成功,1—成功)、比较次数、查找成功的位置(从1开始)构造的哈希表信息,数组中没有关键字的位置输出NULL。哈希表长m、关键字个数n。
2024-12-21 16:38:37
486
原创 DS查找—二叉树平衡因子
二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。对每组测试数据,按后序遍历的顺序输出树中结点的平衡因子(测试数据没有空树)计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。每组测试数据一行,数组元素个数n,后跟n个字符,二叉树的数组存储。
2024-12-21 16:35:53
503
原创 DS二叉排序树之查找
从第二行起,输出查找结果,如果查找成功输出查找次数,如果查找失败输出-1。第2行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到。给出一个数据序列,建立二叉排序树,并实现查找功能。接着输入m行,每行一个要查找的数据,都是自然数。第1行输入n,表示首个序列包含n个数据。第3行输入m,表示要查找m个数据。以此类推输入下一个示例。
2024-12-13 00:35:42
347
原创 DS二叉排序树之删除
当删除数据不在序列中,那么删除操作等于不执行,所以输出序列不变化。第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到。从第五行起,输入m行,每行一个要删除的数据,都是自然数。从第二行起,输出删除第m个数据后的有序序列,输出m行。给出一个数据序列,建立二叉排序树,并实现删除功能。对二叉排序树进行中序遍历,可以得到有序的数据序列。第二行输入n,表示首个序列包含n个数据。第一行输入t,表示有t个数据序列。第四行输入m,表示要删除m个数据。
2024-12-13 00:33:12
417
原创 DS树--二叉树之最大路径
题目描述给定一颗二叉树的逻辑结构(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径,每条路径的权值等于路径上所有结点的权值和。编程求出二叉树的最大路径权值。如下图所示,共有4个叶子即有4条路径,路径1权值=5 + 4 + 11 + 7 = 27路径2权值=5 + 4 + 11 + 2 = 22路径3权值=5 + 8 + 13 = 26路径4权值=5 + 8 + 4 + 1 = 18。
2024-11-07 14:31:29
556
原创 DS二叉树--赫夫曼树解码
/输入编码串codestr,输出解码串txtstr。如果ch非0非1,表示编码串有错误,报错退出。该方法如果解码成功则返回1,解码失败则返回-1,本程序增加宏定义ok表示1,error表示-1。每行输出解码后的字符串,如果解码失败直接输出字符串“error”,不要输出部分解码结果。定义指针p指向赫夫曼树结点,指针i指向编码串,定义ch逐个读取编码串的字符。3)如果p指的结点是叶子,输出解码字符,p跳回根结点,i++,跳步骤1。4)如果p指的结点不是叶子且i未到编码串末尾,i++,跳步骤1。
2024-11-07 14:27:02
405
原创 碰撞检测(循环)
游戏中需要检测元素是否碰撞到一起,比如打飞机游戏,没躲避炮弹就算碰撞,检测出来,游戏game over。假设将游戏中的元素当作矩形,当两个矩形有重合点,则认为它们发生碰撞。设屏幕左上角坐标为(0,0),x轴向右,y轴向下,屏幕上的点用(X,Y)坐标表示,如上图所示。屏幕中的矩形用其左上角和右下角坐标标识。分别输入两个矩形的左上角和右下角坐标,检测其是否碰撞。对每组测试数据,输出碰撞检测结果,YES(碰撞)或NO(无碰撞)第一行,矩形1的左上角坐标,右下角坐标。第二行,矩形2的左上角坐标,右下角坐标。
2024-10-28 15:28:26
404
1
原创 DS树--二叉树高度
第二行起输入每个二叉树的先序遍历结果,空树用字符‘0’表示,连续输入t行。第一行输入一个整数t,表示有t个二叉树。给出一棵二叉树,求它的高度。注意,二叉树的层数是从1开始。每行输出一个二叉树的高度。
2024-10-27 16:08:44
233
原创 DS串应用--串替换
本题只考虑一处替换的情况,如果你想做的完美一些,能够实现多处替换那可能需要考虑模式串和替换串长度不一致的情况。给出主串、模式串、替换串,用KMP算法找出模式串在主串的位置,然后用替换串的字符替换掉模式串.第二行输入第1个实例的主串,第三行输入第1个实例的模式串,第四行输入第1个实例的替换串。第二行输出第1个实例的主串替换后结果,如果没有发生替换就输出主串原来的内容。第一个输入t,表示有t个实例。第一行输出第1个实例的主串。
2024-10-16 16:37:30
325
原创 DS队列--组队列
以此类推输入完t组以定义同组元素之后,开始输入多个操作命令(<200),对空的组队列进行操作,例如输入ENQUEUE 100,表示把元素100插入队列。1、 ENQUEUE,表示当有新的元素进入队列,首先会检索是否有同一组的元素已经存在,如果有,则新元素排在同组的最后,如果没有则插入队列末尾。组队列是队列结构中一种常见的队列结构,在很多地方有着广泛应用。组队列是是指队列内的元素分组聚集在一起。第1行输入一个t(t<=10),表示1个队列中有多少个组。第2行输入一个第1组的元素个数和数值。
2024-10-11 16:13:11
415
原创 学生宿舍管理(双向列表容器List)
用两个链表(已用宿舍链表和可用宿舍链表)维护宿舍的管理,实现宿舍分配、宿舍交回。赵六(102)-李明(103)-马山(104)-张三(106)-王五(107)-钱伟(112)宿舍分配从可用宿舍链表中摘取第一间宿舍分配给学生。display_used依次输出当前已用宿舍链表中的宿舍号,具体格式见样例。assign 学生 //为学生分配宿舍,从可用宿舍链表头摘取一间宿舍,return 宿舍号 //学生退宿舍,删除已用宿舍链表中对应结点,//按宿舍号升序挂在已用宿舍链表中。//挂在可用宿舍链表尾部。
2024-09-18 21:36:14
464
原创 时钟调整(运算符前后增量)
第三行输入t个整数x,如果x为正整数,则表示执行调快操作,使用重载运算符++;1、用一元运算符++,并且是前增量的方法,实现时钟的调快操作。2、用一元运算符--,并且是后增量的方法,实现时钟的调慢操作。例如要把时钟调慢10秒,则执行10次” <对象>-- “的操作。每次的调快或调慢操作都是承接上一次调整后的结果进行,例如先调快10秒,再调慢2秒,那么调慢2秒是接着调快10秒后的结果进行的。3、用构造函数的方法实现时钟对象的初始化,用输出函数实现时钟信息的输出。第一行输入时钟的当前时间时、分、秒。
2024-07-04 21:50:16
403
原创 汽车收费(虚函数和多态)
从第二行开始,每个测试用例占一行,每行数据意义如下:汽车类型(1为car,2为Truck,3为Bus)、编号、基本信息(Car是载客数和重量,Truck给出重量,Bus给出载客数)。主函数根据输入的信息,相应建立Car,Truck或Bus类对象,对于Car给出载客数和重量,Truck给出重量,Bus给出载客数。以Vehicle为基类,构建出Car、Truck和Bus三个类。Car的收费公式为: 载客数*8+重量*2。Truck的收费公式为:重量*5。Bus的收费公式为: 载客数*3。string no;
2024-07-04 21:47:35
545
原创 OOP双人决斗(多重继承)
题目描述写一个Node2D基类,属性有位置location(string)一个Body子类继承自Node2D,属性当前生命值health(int),防御力defense(int)一个Weapon子类也继承自Node2D,属性有武器名w_name(string),伤害damage(int)一个Player多继承自Body和Weapon,属性有名字name(string)。方法有attack,对目标造成伤害在主函数创建两个Player,p1、p2,判断在p1首先开始攻击的情况下谁会获胜。
2024-06-20 20:01:16
801
原创 简单类模板(类模板)
2)插入,接受外来参数的插入位置和插入数值,插入位置从0开始计算,注意从插入位置开始,原有数据都要往后移动一位,且数据长度+1。3)删除,接受外来参数的删除位置,删除位置从0开始计算,注意从删除位置后一位开始,原有数据都要往前移动一位,且数据长度-1。针对接着的三行输入,分别执行初始化、插入操作和删除操作,调用打印方法输出列表包含的浮点数数据。针对头三行输入,分别执行初始化、插入操作和删除操作,调用打印方法输出列表包含的整数数据。第五行输入两个参数,表示插入位置和插入数值,数值为浮点数。
2024-06-18 20:38:32
476
原创 商旅信用卡(多重继承)
信用卡,有卡号(int)、姓名(string)、额度(int)、账单金额(float)、信用卡积分(int)。生成旅程信用卡对象,输入卡信息,调用对象成员函数完成旅程网下单、信用卡刷卡、信用卡退款、信用卡积分兑换为旅程积分等操作。旅程会员卡,有会员卡号(int)、旅程积分(int),通过会员卡下订单,按订单金额累计旅程积分。通过旅程信用卡在旅程网下单,旅程积分和信用卡积分双重积分(即旅程积分和信用卡积分同时增加)。旅程信用卡可以按旅程积分:信用卡积分= 1:2 的比例将信用卡积分兑换为旅程积分。
2024-06-13 22:38:45
583
原创 OOP 下一个排列(函数模板)
输入一个序列,输出其下一个字典序的排列如:输入1 2 3,下一个为1 3 2,下一个为2 1 3,下一个为2 3 1,下一个为3 1 2,下一个为3 2 1(最大的字典序排列)下一个为1 2 3(重新返回最小的字典序排列)......输入有多种类型:C:表示char型数据I:表示int型数据D:表示double型数据S:表示string型数据第1行:一个整数n,表示测试次数以下n行:每行为 C/I/D/S k ...k个数据(用空格分隔)对每个测试数据输出其下一个字典序排列4。
2024-06-05 20:12:25
501
原创 倚天屠龙记(函数模板)
江湖中有一个传言,只要倚天剑和屠龙刀中暗藏的秘密拼到一起,就能得到天下无敌的内功秘笈。设计一个函数模板,完成拼凑的功能(将倚天剑的秘密连接到屠龙刀的后面),并将秘笈输出. 其中每个秘密由n个元素组成,类型为T。第二行先输入一个大写字母表示数据类型,I表示整数类型,D表示双精度数类型,C表示字符型;然后输入n表示数据个数。第一行输入t表示有t个测试实例。第三行输入倚天剑的n个数据。第四行输入屠龙刀的n个数据。
2024-06-03 20:23:34
431
原创 【程序填空题】矩阵(运算符重载)
+i) // 输出matrixA中的数据。// 定义matrixA对象。// 定义matrixB对象。++i) // 输出matrixB对象。// 输入矩阵行n, 列m。++i) // 输入n行m列数据。//补齐CArray的其它成员函数及实现。class CArray //矩阵类。正整数n、m,分表表示矩阵的行、列。// 分配n行m列空间。//CArray构造函数。//CArray析构函数。
2024-05-29 19:37:28
1203
原创 【程序填空题】日期比较(运算符重载)
构造函数含单个参数,参数是八位整数,默认值为0,实现整数转为日期类型,例如参数为20170612,转为year=2017, month=6, day=12。// 日期大的输出,在代码C1>C2中,会自动把C1和C2转换为整数进行比较。实现转换运算符重载,把日期类型转为整数,例如2017年6月8日转为20170608。注意,如果月或日小于10,转化为整数时要补0。定义一个日期类CDate,包含属性:年、月、日,都是整数。主函数如下,不能修改,请补充上面的日期类。每行输出一对日期中,日期大的信息。
2024-05-27 23:13:32
493
原创 四进制加法(运算符重载)
定义一个四进制的类,重定义“+”号实现四进制数的累加。第一行输入所需要的四进制数的个数。第二行开始,依次输入四进制数。所有输入四进制数累加的和。
2024-05-27 21:58:51
469
原创 【程序填空】三维点坐标平移(增量运算符重载)
定义一个三维点Point类,利用友元函数重载"++"和"--"运算符,并区分这两种运算符的前置和后置运算。//临时赋值进行增量运算。++表示x\y\z坐标都+1,--表示x\y\z坐标都-1。只有一行输入,输入三个整数,表示点的x/y/z坐标。//第3、4行输出,前置++//第5、6行输出,后置--//第7、8行输出,前置--这道题大家要注意符号的前后位置哦!
2024-05-24 15:23:17
857
原创 最贵的书(输入输出重载+友元+引用)
定义友元函数find(CBook *book, int n, int &max1index,int &max2index)查找n本书中售价最高、次高的两本书,并通过引用返回其下标。输入n,输入n本书的信息,调用上述友元函数,求价格最高的两本书下标,并按样例格式输出书信息。Effective Java中文版,约书亚.布洛克,94,机械工业出版社。活用数据:驱动业务的数据分析实战,陈哲,61.4,电子工业出版社。重构 改善既有代码的设计,马丁.福勒,122.6,人民邮电出版社。第二行:售价次高的书信息。
2024-05-23 20:32:25
978
原创 学生生日差值计算(运算符重载)
定义一个学生类Student,包含该学生的姓名、出生年、月、日 ,重定义 “-”号实现两个学生之间相差多少天的比较。并利用重载的“-”运算符,求所有学生中年龄相差最大的两个人的名字以及相差天数。第二行开始,依次输入每个学生的姓名、出生年、月、日。输出年龄相差最大的两个人的名字以及相差天数。Tom和Jimmy年龄相差最大,为372天。第一行:输入所需要输入的学生个数;
2024-05-23 19:43:35
502
原创 人民币运算(输入输出重载)
由于OJ编译器对double强制类型转换成int的处理精度有偏差,建议加0.005处理(例如数据1.38,由于误差,在内存中的存储值为1.379999)第2行输入三个整数,表示以元、角、分为参数的人民币金额,例如输入4 5 6,对应人民币对象为4元5角6分。第1行输入一个浮点数,表示以元为单位的人民币金额,例如输入1.23,对应人民币对象为1元2角3分。定义一个人民币类,包括元、角、分三个非负整数属性。第1行输出两个人民币金额比较的结果,具体看样例。第2行输出两个人民币金额相加的结果,具体看样例。
2024-05-21 22:23:30
442
1
原创 复数的加减乘运算
设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.2.编写main函数,初始化两个Complex对象,计算它们之间的加减乘,并输出结果。定义一个复数类,通过重载运算符:+、-、*,实现两个复数之间的各种运算。第1行:输入两个数值,分别为第一个Complex对象的实部和虚部。第2行:输入两个数值,分别为第二个Complex对象的实部和虚部。第3行:两个Complex对象相乘后的输出结果。
2024-05-20 23:10:55
435
原创 OOP矩阵的右旋(类拷贝构造与析构)
要求:矩阵类内的矩阵需要使用new方法,动态生成,并且在调用结束后使用析构函数释放空间。定义一个矩阵类,其中包含了矩阵的维数,矩阵,以及需要的方法。连续m行,输入矩阵维数m和n,然后输入一个m*n的矩阵的数据。为该矩阵类定义一个拷贝构造函数,复制另一个矩阵对象的矩阵。在输出的每行中,每个数据之间都用空格隔开。对复制矩阵类对象的矩阵进行右旋操作。第一行输入t表示有t个测试实例。需要注意的是这道题目的输出格式。依次输出右转前后的矩阵。
2024-05-18 16:20:33
663
原创 支票账户(虚函数与多态)
支票账户除包含BaseAccount的所有信息外,还包括以下信息:透支上限(limit:默认为5000),当前透支总额(limit_sum);BasePlus支票账户可执行的操作与BaseAccount相同,但有两种操作的实现不同:(1)对于取款操作,可以在透支上限范围内透支,超过则显示出错信息。BaseAccount支票账户可以执行的操作包括:存款(deposit)、取款(withdraw)、显示账户信息(display)。(2)对于显示操作,必须显示BasePlus的其他信息。
2024-05-16 23:02:10
601
1
原创 计算学生成绩等级(虚函数和多态)
请设计3个类,分别是学生类Student,本科生类Undergraduate,研究生类Postgraduate,其中Student类是基类,它包含基本的学生信息,如姓名、类别(本科生还是研究生)、所学课程(这里假定为3门课,用数组表示)成绩和成绩等级等;从第二行开始,每个测试用例占一行,每行数据意义如下:学生姓名、学生类别(1为本科生,2为研究生)、3门课的成绩。//学生类别:1表示本科生,2表示研究生。
2024-05-16 12:20:52
951
1
原创 员工工资(虚函数与多态)
某公司员工的属性有:姓名、职位、级别、工作年限,级别和年限都是非负整数,否则显示错误。本题IO模式为标准输入/输出(Standard IO),你需要从标准输入流中读入数据,并将答案输出至标准输出流中。要求:以普通员工为基类,组长和经理继承基类,程序中只能使用基类指针指向对象与调用对象的方法。如有错误信息,则输出错误信息,若职位信息与级别和年限信息同时出错,仅输出职位错误信息。每行输入一个员工的信息:包括姓名、职位、级别、工作年限。计算工资的方法返回每个员工的工资数。
2024-05-13 21:30:45
455
原创 求最大面积(虚函数和多态)
/t为基类二级指针,指向一个基类动态数组,数组的每个元素指向一个子类图形,n为数组的大小。从第二行开始,每个测试用例占一行,每行数据意义如下:图形类型(1为Rect(矩形),2为Circle(圆))、基本信息(Rect是长和宽,Circle是半径)。以Geometry为基类,构建出Rect(矩形,数据成员为长和宽)和Circle(圆,数据成员为半径)两个类,重写getArea()方法,其他方法根据需要自拟。请编写程序,从图形数组中找出最大面积。生成上述四个类并编写主函数,结果保留两位小数。
2024-05-13 21:27:40
405
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅