自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 习题 8.1 银行排队问题之单队列多窗口服务(25 分)

假设银行有 K 个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。输入格式:输入第 1 行给出正整数 N(≤1000),为顾客总人数;随后 N 行,每行给出一位顾客的到达时间 T 和事务处理时间 P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数 K(

2020-08-10 08:25:19 1583 1

原创 练习 7.1 排序(25 分)

给定 N 个(长整型范围内的)整数,要求输出从小到大排序后的结果。本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:数据 1:只有 1 个元素;数据 2:11 个不相同的整数,测试基本正确性;数据 3:103个随机整数;数据 4:104个随机整数;数据 5:105个随机整数;数据 6:105个顺序整数;数据 7:105个逆序整数;数据 8:105个基本有序的整数;数据 9:105个随机正整数,每个数字不超过 1000。输入格式:输入第一行给出正整数 N(

2020-08-10 08:25:10 922 2

原创 习题 4.5 顺序存储的二叉树的最近的公共祖先问题(25 分)

设顺序存储的二叉树中有编号为 i 和 j 的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。输入格式:输入第 1 行给出正整数 n(≤1000),即顺序存储的最大容量;第 2 行给出 n 个非负整数,其间以空格分隔。其中 0 代表二叉树中的空结点(如果第 1 个结点为 0,则代表一棵空树);第 3 行给出一对结点编号 i 和 j。题目保证输入正确对应一棵二叉树,且 1≤i,j≤n。输出格式:如果i或j对应的是空结点,则输出 ERROR: T[x] is NULL,其中 x 是 i 或 j

2020-08-10 08:25:02 682

原创 练习 4.3 堆中的路径(25 分)

将一系列给定数字插入一个初始为空的小顶堆 H【】。随后对任意给定的下标 i,打印从 H【i】到根结点的路径。输入格式:每组测试第 1 行包含 2 个正整数 N 和 M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间【-10000,10000】内的 N 个要被插入一个初始为空的小顶堆的整数。最后一行给出 M 个下标。输出格式:对输入中给出的每个下标i,在一行中输出从 H【i】到根结点的路径上的数据。数字间以 1 个空格分隔,行末不得有多余空格。输入样例:5 346 2

2020-08-10 08:24:53 522

原创 练习 4.2 平衡二叉树的根(25 分)

将给定的一系列数字插入初始为空的 AVL 树,请你输出最后生成的 AVL 树的根结点的值。输入格式:输入的第一行给出一个正整数 N(≤20),随后一行给出 N 个不同的整数,其间以空格分隔。输出格式:在一行中输出顺序插入上述整数到一棵初始为空的 AVL 树后,该树的根结点的值。输入样例 1:588 70 61 96 120输出样例 1:70输入样例 2:788 70 61 96 120 90 65输出样例 2:88#include<stdio.h>#inc

2020-08-10 08:24:43 554

原创 练习 4.1 根据后序和中序遍历输出先序遍历(25 分)

本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数 N(≤30),是树中结点的个数。随后两行,每行给出 N 个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出 Preorder:以及该树的先序遍历结果。数字间有 1 个空格,行末不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:Preorder: 4 1 3 2 6 5 7代码:

2020-08-10 08:24:34 556

原创 习题 3.11 表达式转换(25 分)

算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过 20 个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+3*(7-4)+8/4输出样例:2 3 7 4 - * + 8 4 / +代码:#i

2020-08-10 08:24:24 650

原创 习题 3.10 汉诺塔的非递归实现(25 分)

借助堆栈以非递归(循环)方式求解汉诺塔的问题(n,a,b,c),即将 N 个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。输入格式:输入为一个正整数 N,即起始柱上的盘数。输出格式:每个操作(移动)占一行,按柱1 -> 柱2 的格式输出。输入样例:3输出样例:a -> ca -> bc -> ba -> cb -> ab -> ca -> c代码:#i

2020-08-10 08:24:16 519

原创 习题 3.9 堆栈操作合法性(20 分)

假设以 S 和 X 分别表示入栈和出栈操作。如果根据一个仅由 S 和 X 构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入 S 和 X 序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数 N 和 M,其中 N 是待测序列的个数,M(≤50)是堆栈的最大容量。随后 N 行,每行中给出一个仅由 S 和 X 构成的序列。序列保证不为空,且长度不超过 100。输出格式:对每个序列,在一行中输出 YES 如果

2020-08-10 08:23:53 764

原创 习题 3.8 符号配对(20 分)

请编写程序检查 C 语言源程序中下列符号是否配对:输入格式:输入为一个 C 语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过 100 个。输出格式:首先,如果所有符号配对正确,则在第一行中输出 YES,否则输出 NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则输出左符号-?。输入样例 1:void test(){ int i, A[10]; for (i=0; i<10

2020-08-10 08:23:42 742 1

原创 习题 2.8 输出全排列(20 分)

请编写程序输出前 n 个正整数的全排列(n<10),并通过 9 个测试用例(即 n 从 1 到 9)观察 n 逐步增大时程序的运行时间。输入格式:输入给出正整数 n(<10)。输出格式:输出 1 到 n 的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列 a​1,a​2​​……a​n​​ 排在序列 b​1,b​2……b​n 之前,如果存在 k 使得 a​1=b​1……a​k=b​k​​ 并且 a​k+1​​<b​k+1。输入样例:3输出样例:123

2020-08-09 08:01:52 816

原创 习题 2.3 数列求和-加强版(20 分)

给定某数字 A(1≤A≤9)以及非负整数 N(0≤N≤100000),求数列之和 S=A+AA+AAA+……+AA……A(N 个 A)。例如 A=1,N=3 时,S=1+11+111=123。输入格式:输入数字 A 与非负整数 N。输出格式:输出其 N 项数列之和 S 的值。输入样例:1 3输出样例:123代码:#include<stdio.h>int digit,length,answer[131072],i,r;int main(){ scanf("%d%d",

2020-08-09 08:01:44 588

原创 习题 2.2 数组循环左移(20 分)

本题要求实现一个对数组进行循环左移的简单函数:一个数组 a 中存有 n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移 m(≥0)个位置,即将 a 中的数据由(a​0,a​1……a​n-1)变换为(a​m​​……a​n-1,a​0​​,a​1……a​m-1)(最前面的 m 个数循环移至最后面的 m 个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第 1 行给出正整数 n(≤100)和整数 m(≥0);第 2 行给出 n 个整数,其间以空格分隔

2020-08-09 08:01:31 713

原创 习题 2.1 简单计算器(20 分)

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号“=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=输出样例:10代码:#include<stdio.h>int main(){ int answer,temp,f

2020-08-09 08:01:22 560

原创 实例1.1 最大子列和问题(20 分)

给定 K 个整数组成的序列{N​1,N​2……N​K},“连续子列”被定义为{N​i​​,N​i+1……N​j},其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{-2,11,-4,13,-5,-2},其连续子列{11,-4,13}有最大的和 20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下:数据 1:与样例等价,测试基本正确性;数据 2:102 个随机整数;数据 3:103 个随机

2020-08-09 08:01:12 752

原创 7-53 两个有序序列的中位数(25 分)

已知有两个等长的非降序序列 S1,S2,设计函数求 S1 与 S2 并集的中位数。有序序列 A​0,A​1……A​N-1​​ 的中位指 A​(N-1)/2​​ 的值,即第【(N+1)/2】个数(A​0​​ 为第 1 个数)。输入格式:输入分三行。第一行给出序列的公共长度 N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。输出格式:在一行中输出两个输入序列的并集序列的中位数。输入样例 1:51 3 5 7 92 3 4 5 6输出样例 1

2020-08-09 08:01:03 483

原创 7-49 打印学生选课清单(25 分)

假设全校有最多 40000 名学生和最多 2500 门课程。现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单。输入格式:输入的第一行是两个正整数:N(≤40000),为前来查询课表的学生总数;K(≤2500),为总课程数。此后顺序给出课程 1 到 K 的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号(简单起见,课程从 1 到 K 编号)和选课学生总数(之间用空格分隔),之后在第二行给出学生名单,相邻两个学生名字用 1 个空格分隔。学生姓名由 3 个大写英文字母+1 位数字组成

2020-08-09 08:00:53 661

原创 7-47 打印选课学生名单(25 分)

假设全校有最多 40000 名学生和最多 2500 门课程。现给出每个学生的选课清单,要求输出每门课的选课学生名单。输入格式:输入的第一行是两个正整数:N(≤40000),为全校学生总数;K(≤2500),为总课程数。此后 N 行,每行包括一个学生姓名(3 个大写英文字母+1 位数字)、一个正整数 C(≤20)代表该生所选的课程门数、随后是 C 个课程编号。简单起见,课程从 1 到 K 编号。输出格式:顺序输出课程 1 到 K 的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号和选课学生总

2020-08-09 08:00:43 560

原创 7-45 航空公司 VIP 客户查询(25 分)

不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分的功能。输入格式:输入首先给出两个正整数 N(≤10​5​​)和 K(≤500)。其中 K 是最低里程,即为照顾乘坐短程航班的会员,航空公司还会将航程低于 K 公里的航班也按 K 公里累积。随后 N 行,每行给出一条飞行记录。飞行记录的输入格式为:18 位身份证号码(空格)飞行里程。其中身份证号码由 17

2020-08-09 08:00:32 738

原创 7-43 字符串关键字的散列映射(25 分)

给定一系列由大写英文字母组成的字符串关键字和素数 P,用移位法定义的散列函数 H(Key)将关键字 Key 中的最后 3 个字符映射为整数,每个字符占 5 位;再用除留余数法将整数映射到长度为 P 的散列表中。例如将字符串 AZDEG 插入长度为 1009 的散列表中,我们首先将 26 个大写英文字母顺序映射到整数 0~25;再通过移位将其映射为 3×32​2​​+4×32+6=3206;然后根据表长得到,即是该字符串的散列映射位置。发生冲突时请用平方探测法解决。输入格式:输入第一行首先给出两个正整数

2020-08-09 08:00:18 718

原创 7-42 整型关键字的散列映射(25 分)

给定一系列整型关键字和素数 P,用除留余数法定义的散列函数将关键字映射到长度为 P 的散列表中。用线性探测法解决冲突。输入格式:输入第一行首先给出两个正整数 N(≤1000)和 P(≥N 的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出 N 个整型关键字。数字间以空格分隔。输出格式:在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。输入样例:4 524 15 61 88输出样例:4 0 1 3代码:#include<ma

2020-08-04 08:58:21 731

原创 7-41 PAT 排名汇总(25 分)

计算机程序设计能力考试(Programming Ability Test,简称 PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。输入格式:输入的第一行给出一个正整数 N

2020-08-04 08:40:27 786

原创 7-40 奥运排行榜(25 分)

每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。输入格式:输入的第一行给出两个正整数 N 和 M(≤224,因为世界上共有 224 个国家和地区),分别是参与排名的国家和地区的总个数、以及前来咨询的国家的个数。为

2020-08-04 08:09:42 1257

原创 7-39 魔法优惠券(25 分)

在火星上有个魔法商店,提供魔法优惠券。每个优惠劵上印有一个整数面值 K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免费赠品的时候使用面值为正的优惠劵,则必须倒贴给商店 K 倍该商品价值的金额…… 但是不要紧,还有面值为负的优惠劵可以用!(真是神奇的火星)例如,给定一组优惠劵,面值分别为 1、2、4、-1;对应一组商品,价值为火星币 M$7、6、-2、-3,其中负的价值表示该商品是免费赠品。我们可以将优惠劵 3 用在商品 1 上,得

2020-08-04 08:09:28 573

原创 7-38 寻找大富翁(25 分)

胡润研究院的调查显示,截至 2017 年底,中国个人资产超过 1 亿元的高净值人群达 15 万人。假设给出 N 个人的个人资产值,请快速找出资产排前 M 位的大富翁。输入格式:输入首先给出两个正整数 N(≤10​6)和 M(≤10),其中 N 为总人数,M 为需要找出的大富翁数;接下来一行给出 N 个人的个人资产值,以百万元为单位,为不超过长整型范围的整数。数字间以空格分隔。输出格式:在一行内按非递增顺序输出资产排前M位的大富翁的个人资产值。数字间以空格分隔,但结尾不得有多余空格。输入样例:8

2020-08-04 08:09:18 497

原创 7-37 模拟 EXCEL 排序(25 分)

Excel 可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。输入格式:输入的第一行包含两个正整数 N(≤10​5)和 C,其中 N 是纪录的条数,C 是指定排序的列号。之后有 N 行,每行包含一条学生纪录。每条学生纪录由学号(6 位数字,保证没有重复的学号)、姓名(不超过 8 位且不包含空格的字符串)、成绩(【0,100】内的整数)组成,相邻属性用 1 个空格隔开。输出格式:在N行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2 时,按姓名的非递减字典序排序;当 C

2020-08-04 08:09:08 539

原创 7-35 城市间紧急救援(25 分)

作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出 4 个正整数 N、M、S、D,其中 N(2≤N≤500)是城市的个数,顺便假设城市的编号为 0~(N-1);M 是快速道路的条数;S 是出发地的城市编号;D 是目的地的城市编号。第二行给出

2020-08-04 08:08:57 627

原创 7-34 任务调度的合理性(25 分)

假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如 C 程序设计和数据结构两门课,必须先学习前者。但是需要注意的是,对一组子任务,并不是任意的任务调度都是一

2020-08-04 08:08:46 703

原创 7-32 哥尼斯堡的“七桥问题”(25 分)

哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示。可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707——1783)最终解决了这个问题,并由此创立了拓扑学。这个问题如今可以描述为判断欧拉回路是否存在的问题。欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个无向图,问是否存在欧拉回路?输入格式:输入第一行给出两个正整数,分别是节点数 N (1≤N≤1000)和边数 M;随后的 M 行对应

2020-08-04 08:08:33 662

原创 7-31 笛卡尔树(25 分)

笛卡尔树是一种特殊的二叉树,其结点包含两个关键字 K1 和 K2。首先笛卡尔树是关于 K1的二叉搜索树,即结点左子树的所有 K1 值都比该结点的 K1 值小,右子树则大。其次所有结点的 K2 关键字满足优先队列(不妨设为最小堆)的顺序要求,即该结点的 K2 值比其子树中所有结点的 K2 值小。给定一棵二叉树,请判断该树是否笛卡尔树。输入格式:输入首先给出正整数 N(≤1000),为树中结点的个数。随后 N 行,每行给出一个结点的信息,包括:结点的 K1 值、K2 值、左孩子结点编号、右孩子结点编号。设结

2020-08-04 08:08:16 545

原创 7-29 修理牧场(25 分)

农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要 N 块木头,每块木头长度为整数 L​i​​ 个长度单位,于是他购买了一条很长的、能锯成 N 块的木头,即该木头的长度是 L​i​​ 的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为 20 的木头锯成长度为 8、7 和 5 的三段,第一次锯木头花费 20,将木头锯成 12 和 8;第二次锯木头花费 12,将长度为 12 的木头锯成 7 和 5,总花费为 32。如果第一次将木头锯成

2020-08-02 12:12:23 804

原创 7-28 搜索树判断(25 分)

对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。输入格式:输入的第一行包含一个正整数 N(≤1000),第二行包含 N 个整数,为给出的整数键值序列,数字间以空格分隔。输出格式:输出的第一行首先给出判断结果,如果输入的序列是某棵二叉搜

2020-08-02 11:33:43 567

原创 7-26 Windows消息队列(25 分)

消息队列是 Windows 系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。输入格式:输入首先给出正整数 N(≤105​​),随后 N 行,每行给出一个指令——GET 或 PUT,分别表示从队列中取出消息或将消息添加到队列中。如果指令是 PUT,后面就有一个消息名称

2020-08-02 10:54:20 822 4

原创 7-25 朋友圈(25 分)

某学校有 N 个学生,形成 M 个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果 A 和 B 是朋友,且 B 和 C 是朋友,则 A 和 C 也是朋友。请编写程序计算最大朋友圈中有多少人。输入格式:输入的第一行包含两个正整数 N(≤30000)和 M(≤1000),分别代表学校的学生总数和俱乐部的个数。后面的 M 行每行按以下格式给出 1 个俱乐部的信息,其中学生从 1~N 编号:第 i

2020-08-02 09:54:53 560

原创 7-24 树种统计(25 分)

随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。输入格式:输入首先给出正整数 N(≤105​​),随后 N 行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过 30 个英文字母和空格组成(大小写不区分)。输出格式:按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,保留小数点后 4 位。输入样例:29Red AlderAshAspenBasswoodAshBeechYello

2020-08-02 09:34:13 540

原创 7-23 还原二叉树(25 分)

给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数 N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为 N 的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5代码:#include<stdio.h>int search(char arraya[64],char arrayb[64],int leng

2020-08-02 09:19:58 726

原创 7-22 堆栈模拟队列(25 分)

设已知有两个堆栈 S1 和 S2,请用这两个堆栈模拟出一个队列 Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈 S 是否已满,返回 1 或 0;int IsEmpty (Stack S ):判断堆栈 S 是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素 item 压入堆栈 S;ElementType Pop(Stack S ):删除并返回 S 的栈顶元素。实现队列的操作,即

2020-08-02 08:32:55 540

原创 7-21 求前缀表达式的值(25 分)

算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如 2+3*(7-4)+8/4 的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4。请设计程序计算前缀表达式的结果值。输入格式:输入在一行内给出不超过30个字符的前缀表达式,只包含+、-、*、/以及运算数,不同对象(运算数、运算符号)之间以空格分隔。输出格式:输出前缀表达式的运算结果,保留小数点后 1 位,或错误信息 ERROR。输入样例:+ + 2 * 3 - 7 4 / 8 4输出样

2020-08-02 08:06:27 719

原创 7-20 表达式转换(25 分)

算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过 20 个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+3*(7-4)+8/4输出样例:2 3 7 4 - * + 8 4 / +代码:#i

2020-08-02 08:06:18 613

原创 7-18 银行业务队列简单模拟(25 分)

设某银行有 A、B 两个业务窗口,且处理业务的速度不一样,其中 A 窗口处理速度是 B 窗口的 2 倍——即当 A 窗口每处理完 2 个顾客时,B 窗口处理完 1 个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完 2 个顾客时,A 窗口顾客优先输出。输入格式:输入为一行正整数,其中第 1 个数字 N(≤1000)为顾客总数,后面跟着 N 位顾客的编号。编号为奇数的顾客需要到 A 窗口办理业务,为偶数的顾客则去 B 窗口。数字间以空

2020-08-02 08:06:03 632

空空如也

空空如也

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

TA关注的人

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