自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 OOP单词逆序输出(类拷贝构造与析构)

试定义一个类 STR,利用用户输入的字符串构造一个STR对象obj,并生成obj的一个副本对象objcopy,将objcopy的字符串中的各英文单词逆序处理(已知英文单词之间以非英文字母分隔)。 void backward (char *t1,char *t2) :将指针 t1、t2 之间的字符前后逆序。 void fun( ) :利用函数 backward()将字符串 s 中的各英文单词逆序。 STR (const STR& obj) :拷贝构造函数,拷贝参数obj的s。输入需要处理的字符串。

2025-04-02 20:05:58 178

原创 手机服务(构造+拷贝构造+堆)

8、停机功能是停用当前号码,参数是停机日期,无返回值,操作是把状态改成停用,并停机日期指针创建为动态对象,并根据参数来设置停机日期,最后输出提示信息,看示例输出。类型=企业||号码=13287654321||State=停用||停机日期=2012.12.12。类型=机构||号码=15712345678||State=停用||停机日期=2015.1.1。第二行输入6个参数,包括号码类型、号码、状态、停机的年、月、日,用空格隔开。3、号码状态用一个数字表示,1、2、3分别表示在用、未用、停用。

2025-04-02 15:48:16 301

原创 C. 抄袭查找(结构体+指针+函数)

定义一个函数,返回值为一个整数,参数是两个结构体指针,函数操作是比较两张试卷的每道题目的答案,如果相同题号的答案相似度超过90%,那么就认为有抄袭,函数返回抄袭题号,否则返回0。相似度是指在同一题目中,两个答案的逐个位置上的字符两两比较,相同的数量大于等于任一个答案的长度的90%,就认为抄袭。每张试卷包含:学号(整数类型)、题目1答案(字符串类型)、题目2答案(字符串类型)、题目3答案(字符串类型)第三行输入第1张试卷的题目1答案。第四行输入第1张试卷的题目2答案。第五行输入第1张试卷的题目3答案。

2024-12-23 19:02:11 258

原创 G. 与零交换

将 { 0, 1, 2, ..., N-1 } 的任意一个排列进行排序并不困难,这里加一点难度,要求你只能通过一系列的 Swap(0, *) —— 即将一个数字与 0 交换 —— 的操作,将初始序列增序排列。输入在第一行给出正整数 N (≤105);随后一行给出{ 0, 1, 2, ..., N-1 } 的一个排列。本题要求你找出将前 N 个非负整数的给定排列进行增序排序所需要的最少的与 0 交换的次数。在一行中输出将给定序列进行增序排序所需要的最少的与 0 交换的次数。

2024-12-18 21:35:51 252

原创 D. 关于堆的判断

(≤ 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−10000,10000]内的。行,每行给出一个命题。题目保证命题中的结点键值都是存在的。随后判断一系列相关命题是否为真。将一系列给定数字顺序插入一个初始为空的小顶堆。对输入的每个命题,如果其为真,则在一行中输出。个要被插入一个初始为空的小顶堆的整数。每组测试第1行包含2个正整数。

2024-12-18 17:20:53 264

原创 C. 基数排序(DS排序)

对每组测试数据,输出每趟分配、收集的结果。若分配中该位没有数字,输出NULL。具体输出格式见样例。每组测试数据间以空行分隔。注:如果序列中有负数,则每个数字加上最小负数的绝对值,使序列中的数均大于等于0。排序后再减去最小负数的绝对值。如果序列中有负数,最后输出减去最小负数绝对值的序列值。每组测试数据一行:数字个数n,后跟n个数字(整数)给定一组数据,对其进行基数升序排序。

2024-12-18 16:53:01 217

原创 B. DS内排—2-路归并排序

对每组测试数据,输出2-路归并排序的每一趟排序结果。每组测试数据的输出之间有1空行。每组测试数据:数据个数n,后跟n个字符串,字符串不含空格。输入一组字符串,用2-路归并排序按字典顺序进行降序排序。

2024-12-18 15:29:19 158

原创 矩阵左转(指针实现)

要求:除了矩阵创建和数据输入可以使用数组和数组下标的方法,其他过程对矩阵的任何访问都必须使用指针。提示:m行n列的二维矩阵,第i行第j列的元素与首元素的距离为i*n+j,序号从0开始计算。在输出的每行中,每个数据之间都用空格隔开,最后一个数据后面也带有空格。输入一个2*3的矩阵,将这个矩阵向左旋转90度后输出。连续两行输入一个2*3的矩阵的数据。第一行输入t表示有t个测试实例。依次输出左转后的矩阵结果。

2024-12-16 00:03:54 222

原创 密钥加密法(指针应用)

例如明文是abcde,密钥是234,那么加密方法就是a对应密钥的2,也就是a偏移2位转化为c;因此明文的d对应密钥的2,转化为f,明文的e对应密钥的3转化为h。要求:使用三个指针p、q、s分别指向明文、密钥和密文,然后使用指针p和q来访问每个位置的字符,进行加密得到密文存储在指针s指向的位置。如果字母偏移的位数超过26个字母范围,则循环偏移,例如字母z偏移2位,就是转化为b,同理字母x偏移5位就是转化为c。有一种方式是使用密钥进行加密的方法,就是对明文的每个字符使用密钥上对应的密码进行加密,最终得到密文。

2024-12-15 23:47:53 376

原创 F. 取子串(指针)

写函数char *substr(char *s,int startloc, int len),功能是取字符串s的从statrloc(startloc=1,2,..,)开始长度为len的子串,并返回求得的子串。如果从startloc开始的子串长度小于len,求得的子串为从startloc到s串的结束。如果startloc大于s串长度,返回空指针。每组测试数据,输出求得的子串。没有求得子串,输出NULL。根据样例,编写子函数,测试取子串函数。串s(假设长度小于50,不含空格)

2024-12-15 23:41:24 177

原创 F. 二叉树后序线索(DS树)

每个测试实例输出2行,每行输出指定结点在后序遍历的前驱结点和后继结点,用单个空格隔开。若指定结点不存在则输出ERROR,若结点的前驱或后继结点不存在则输出-1。第1行:二叉树先序遍历序列,空结点用字符零‘0’表示,无需考虑空树。1)二叉树的构建,并生成二叉树的后序遍历序列;2)求某个结点在后序遍历序列中的前驱与后继。第2行:输入2个指定结点的编号。第一行输入t表示有t个测试实例。

2024-12-11 16:06:01 203

原创 E. DS排序--简单选择排序

对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。给出一个数据序列,使用简单选择排序算法进行升序排序。第三行输入n个数据,都是正整数,数据之间用空格隔开。第二行输入n,表示第一个示例有n个数据(n>1)第一行输入t,表示有t个测试示例。

2024-12-11 16:04:37 169

原创 C. DS排序--快速排序

题目描述给出一个数据序列,使用快速排序算法进行从小到大的排序。

2024-12-11 16:03:21 124

原创 B. DS排序--希尔排序

对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。第三行输入n个数据,都是正整数,数据之间用空格隔开。给出一个数据序列,使用希尔排序算法进行降序排序。第二行输入n,表示第一个示例有n个数据(n>1)间隔gap使用序列长度循环除2直到1。第一行输入t,表示有t个测试示例。

2024-12-11 16:02:01 246

原创 A. DS内排—直插排序

题目描述。

2024-12-11 15:59:24 227

原创 Josegh问题(函数)

设有m个人(m不超过30)围坐一圈并按顺时针方向从1到m编号,从第1个人开始进行1到n的报数,报数到第n个人,此人出圈,再从他的下一个人重新开始从1到n的报数,如此进行下去直到所有的人都出圈为止。现要求给出这m个人的出圈次序顺序表。编写函数Josegh()实现此功能。在主函数中输入m与n的值,调用Josegf()函数。

2024-12-02 17:22:54 189

原创 E. DS二叉排序树之删除

第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到。从第五行起,输入m行,每行一个要删除的数据,都是自然数。从第二行起,输出删除第m个数据后的有序序列,输出m行。给出一个数据序列,建立二叉排序树,并实现删除功能。对二叉排序树进行中序遍历,可以得到有序的数据序列。第二行输入n,表示首个序列包含n个数据。第一行输入t,表示有t个数据序列。第四行输入m,表示要删除m个数据。以此类推输出下一个示例的结果。以此类推输入下一个示例。

2024-11-20 18:25:05 256

原创 D. DS二叉排序树之查找

从第二行起,输出查找结果,如果查找成功输出查找次数,如果查找失败输出-1。第2行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到。给出一个数据序列,建立二叉排序树,并实现查找功能。接着输入m行,每行一个要查找的数据,都是自然数。第1行输入n,表示首个序列包含n个数据。第3行输入m,表示要查找m个数据。以此类推输入下一个示例。

2024-11-20 18:20:44 231

原创 C. DS二叉排序树之创建和插入

从第二行起,输出m行,每行输出插入一个数据到二叉排序树后的先序遍历结果。每行输出的遍历结果中,每个数据后面都带一个空格,最后一个数据也带。第2行输入n个数据,都是自然数且互不相同,数据之间用空格隔开。输入m行,每行一个要插入的数据,都是自然数且和前面的数据不等。给出一个数据序列,建立二叉排序树,并实现插入功能。在建立和插入操作后,都输出二叉树的先序遍历结果i。第一行输出一开始构建的二叉排序树的先序遍历结果。第1行输入n,表示序列包含n个数据。第3行输入m,表示要插入m个数据。

2024-11-20 18:19:07 351

原创 B. DS查找——折半查找求平方根

C++参考cout<<fixed<<setprecision(3)<<x<<endl;比如求5的平方根x,则x一定满足0<=x<=5,取x为(5+0)/2=2.5,因为2.5的平方为6.25>5,所以x一定小于2.5,也即x满足0<=x<=2.5,取x为1.25,以此类推。输出n行,输出两个结果,一个是查找次数,一个是平方根(精确到小数点后三位)的平方根大,则x2>y,我们可以据此缩小查找范围,第1行输入一个整数n(<100),表示有n个数。的平方根小,则x2<y,如果我们查找的数。之间必定有一个取值是。

2024-11-20 18:17:15 460

原创 A. DS静态查找之顺序索引查找

每行输出一个要查找的数值在队列的位置和查找次数,数据之间用短划线隔开,如果查找不成功,输出字符串error。要求使用顺序索引查找算法,其中索引表查找和块内查找都采用不带哨兵、从头开始的顺序查找方法。给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始。第三行输入k,表示主表划分为k个块,k也是索引表的长度。第四行输入k个数据,表示索引表中每个块的最大值。第五行输入t,表示有t个要查找的数值。第一行输入n,表示主表有n个数据。第六行起,输入t个数值,输入t行。

2024-11-20 18:15:43 413

原创 A. 图综合练习--拓扑排序

题目描述已知有向图,顶点从0开始编号,求它的求拓扑有序序列。拓扑排序算法:给出有向图邻接矩阵1.逐列扫描矩阵,找出入度为0且编号最小的顶点v2.输出v,并标识v已访问3.把矩阵第v行全清0重复上述步骤,直到所有顶点输出为止。

2024-11-14 12:29:29 291

原创 F. 无线网络 (Ver. I)

但是,每台计算机都可以被视为两台计算机之间通信的中介,也就是说,如果计算机A和计算机B可以直接通信,计算机C可以与计算机A进行通信,则计算机C和计算机B可以进行通信。这里N是计算机的数量,编号从1到N,D是两台计算机可以直接通信的最大距离。在接下来的N行中,每行包含两个整数xi,yi(0 <= xi,yi <= 10000),这是N台计算机的坐标。在修复网络的过程中,工作人员先后进行两种操作,先修复计算机,再测试两台计算机是否可以通信。1.“O p”(1 <= p <= N),修复计算机p。

2024-11-13 21:30:24 491

原创 E. 汉密尔顿回路

首先第一行给出两个正整数:无向图中顶点数 N(2<N≤200)和边数 M。随后 M 行,每行给出一条边的两个端点,格式为“顶点1 顶点2”,其中顶点从1到N 编号。再下一行给出一个正整数 K,是待检验的回路的条数。著名的“汉密尔顿(Hamilton)回路问题”是要找一个能遍历图中所有顶点的简单回路(即每个顶点只访问 1 次)。对每条待检回路,如果是汉密尔顿回路,就在一行中输出"YES",否则输出"NO"。其中 n 是回路中的顶点数,Vi​ 是路径上的顶点编号。

2024-11-13 21:28:28 220

原创 C. DS静态查找之折半查找

每行输出一个要查找的数值在队列的位置,如果查找不成功,输出字符串error。给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始。第二行输入n个数据,都是正整数,用空格隔开。第三行输入t,表示有t个要查找的数值。第一行输入n,表示队列有n个数据。第四行起,输入t个数值,输入t行。要求使用折半查找算法。

2024-11-13 15:37:36 266

原创 B. 顺序表练习

查找操作,查找成功,输出:1 元素位置(位置从1开始)比较次数。查找不成功,输出:0 0 比较次数。插入、删除操作,操作成功,输出操作后的顺序表。操作不成功,输出ERROR。给出顺序表的初始数据,实现顺序表的定义、创建、插入、删除与查找操作。对每个顺序表,首先输出建表后的顺序表。第一行: 正整数n,后跟n个整数。第二行: 插入位置 插入元素。

2024-11-13 15:30:08 262

原创 J. 迭代法求平方根(循环)

用迭代法求a的平方根。求a的平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001。

2024-11-10 23:47:15 318

原创 H. 分数拆分(双层循环)

现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y.按顺序输出对应每行的k找到所有满足条件1/k=1/x+1/y的组合。第一行输入一个整数n,代表有n组测试数据。接下来n行每行输入一个正整数k。

2024-11-10 23:36:06 440

原创 D. 五位以内的对称素数(双层循环)

对于每个正整数,如果该数是不大于五位数的对称素数,则输出”Yes”,否则输出”No”,每个判断结果单独列一行。接下来包含T行,每行由1个不大于五位数的正整数构成。判断一个数是否为对称且不大于五位数的素数。意思是小于100,000的数。第一行:测试数据组数T。

2024-11-10 23:02:50 195

原创 F. 拯救007

在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。随后 N 行,每行给出一条鳄鱼的 (x,y) 坐标。如果007有可能逃脱,就在一行中输出"Yes",否则输出"No"。

2024-11-07 15:53:25 262

原创 E. 道路建设 (Ver. I)

然后是N行,其中第i行包含N个整数,这些N个整数中的第j个是村庄i和村庄j之间的距离(距离是[1,1000]内的整数)。然后是整数Q(0 <= Q <= N *(N + 1)/ 2),接下来是Q行,每行包含两个整数a和b(1 <= a <b <= N),代表着村庄a和村庄b之间的道路已经建成。两个村A和B是相连的,当且仅当A和B之间有一条道路,或者存在一个村C使得在A和C之间有一条道路,并且C和B相连。有N个村庄,编号从1到N,你应该建造一些道路,使每个村庄都可以相互连接。

2024-11-07 14:55:11 877

原创 C. DS图—图的最短路径(无框架)

每行格式:顶点v编号-其他顶点编号-最短路径值----[最短路径]。没有路径输出:顶点v编号-其他顶点编号--1。给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入一个顶点v,表示求该顶点v到其他顶点的最短路径距离。第三行起,每行输入邻接矩阵的一行,以此类推输入n行。每行输出顶点v到某个顶点的最短距离和最短路径。第一行输入t,表示有t个测试实例。第二行输入顶点数n和n个顶点信息。

2024-11-06 20:04:14 919

原创 B. DS图—最小生成树

根据输入创建无向网。分别用Prim算法和Kruskal算法构建最小生成树。(假设:输入数据的最小生成树唯一。对两种算法,按树的生长顺序,输出边信息(Kruskal中边顶点按数组序号升序输出)m条边信息,格式为:顶点1顶点2权值。输出最小生成树的权值之和。Prim算法的起点v。

2024-11-06 18:19:03 385

原创 A. 图的应用之——图的连通

题目描述给定一个图的邻接矩阵,请判断该图是否是强连通图。强连通图:任意两个顶点之间都有路径。

2024-11-06 14:27:26 293

原创 DS串应用--KMP算法

第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0。第二行输入第1个实例的主串,第三行输入第1个实例的模式串。第一行输出第1个实例的模式串的next值。第一个输入t,表示有t个实例。

2024-11-01 18:02:56 181

原创 C. DS循环链表—约瑟夫环 (Ver. I - B)

每组包括3个数N、K、S,表示有N个人,从第S个人开始,数到K出列。(2

2024-11-01 16:52:02 488

原创 D. DS单链表--结点交换

注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换。用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。第二行输出执行第1次交换操作后的单链表数据,数据之间用空格隔开。第三行输出执行第2次交换操作后的单链表数据,数据之间用空格隔开。如果发现输入位置不合法,输出字符串error,不必输出单链表。第一行输出单链表创建后的所有数据,数据之间用空格隔开。第1行先输入n表示有n个数据,接着输入n个数据。第2行输入要交换的两个结点位置。第3行输入要交换的两个结点位置。

2024-11-01 10:38:16 267

原创 B. DS双向链表—祖玛

祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干个彩色珠子,其中任意三个相邻的珠子不会完全同色。若插入前共有m颗珠子,位置0-m-1,则k ∈ [0, m]表示新珠子嵌入在轨道上的位置。给定轨道上初始的珠子序列,然后是玩家所做的一系列操作。你的任务是,在各次操作之后及时计算出新的珠子序列。第一行是一个由大写字母'A'~'Z'组成的字符串,表示轨道上初始的珠子序列,不同的字母表示不同的颜色。输出共n行,依次给出各次操作(及可能随即发生的消除现象)之后轨道上的珠子序列。

2024-10-31 16:31:32 401

原创 A. 链表原地反转(链表)

【代码】A. 链表原地反转(链表)

2024-10-31 12:35:19 209

原创 C. DS图遍历--深度优先搜索

第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开。给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点0开始。每行输出一个图的深度优先搜索结果,结点编号之间用空格隔开。第三行起,每行输入邻接矩阵的一行,以此类推输入n行。第二行输入n,表示第1个图有n个结点。注意:图n个顶点编号从0到n-1。第一行输入t,表示有t个测试实例。以此类推输入下一个示例。

2024-10-30 16:14:28 612

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除