
数据结构
PTA习题;数据结构的理论知识
邂逅君子堂
。
展开
-
十大排序算法(C语言)
1:以个人使用频率及掌握程度进行如下排列。2:以下都是从小到大排序。3:一般记住哪个用哪个。建议:不要只会冒泡排序,数据量大了一定会超时。1、快速排序1:时间复杂度O(nlog2n)2:快速排序 - 百度百科/*先调用划分函数,再进行左右递归排序*/int partition(int a[],int i,int j)//注意:i、j都是下标。i为起始下标;j为末尾下标。{ int t=a[i]; while(i<j){ while(a[j]>=t &&.原创 2022-10-14 23:38:04 · 630 阅读 · 0 评论 -
7-4 统计子串 (10 分)(C语言版)
编写算法,统计子串t在主串s中出现的次数。输入格式:首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在第一行中输入主串s,在第二行中输入子串t,s和t中不包含空格。输出格式:对于每组测试,若子串t在主串s中出现,则输出t在s中的子串位置和出现总次数,否则输出“0 0”。引号不必输出。输入样例:2abbbbcdebbbbabcdebb输出样例:2 40 0#include<stdio.h>#include<string.h>#原创 2022-03-19 15:29:13 · 2381 阅读 · 0 评论 -
7-6 计算当年天数 (15 分)(C语言版)
编程序实现:输入任意一个日期的年、月、日的值,求出从这一年的1月1日到这一天总共有多少天。假定从公元第一天开始,就实施格里高利历法。格里高利历法的置闰规则是400年97闰,也可以概括为:四闰百不闰,四百闰。输入格式:输入三个代表年、月、日的正整数,以空格分隔。输出格式:输出天数,最后换行。输入样例:2020 12 31输出样例:366#include<stdio.h>int main(){ int year,month,day,sum=0; int fl原创 2022-03-19 15:22:33 · 5108 阅读 · 0 评论 -
7-3 员工薪水-zzuli (10 分)(C语言版)
某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下: 销售额小于等于10000元时,按照5%提成; 销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成; 销售额大于50000元时,超出50000部分按照2%提成。 编写程序,根据销售额计算员工收入。输入格式:输入一个整数表示销售额。输出格式:输出员工的薪水,保留2位小数。输入样例:30000输出样例:2600.00#include<stdio.h>原创 2022-03-19 15:22:01 · 355 阅读 · 0 评论 -
7-1 简单输入输出 (5 分)(C语言版)
编写程序,从键盘输入两个正整数a,b(小于1000),分别计算出它们的商(a/b)和余数(a%b)。输出时,商要求保留2位小数,并对第三位进行四舍五入。输入格式:在一行中先后给出a,b,以空格间隔。输出格式:在一行中按先后顺序且以空格间隔输出a/b和a%b,行末尾无多余空格和换行输入样例:844 21输出样例:40.19 4#include<stdio.h>int main(){ float a,b; float result1,result2;原创 2022-03-19 15:20:29 · 818 阅读 · 0 评论 -
7-1 插入排序法 (100 分)(C语言版)
我没有用插入排序,我用的冒泡排序也通过了编写函数实现插入排序法对数组从小到大排序。在主函数中首先输入一个整数N(1<N<=100),然后再输入N个整数存入数组中,调用你编写的函数排序后输出数组所有元素。(插入排序法的算法思想请查阅相关资料)。输入样例:52 3 1 6 8输出样例:1 2 3 6 8#include<stdio.h>int main(){ int n; int num[100]; int i,j,t; .原创 2022-03-19 15:20:03 · 1747 阅读 · 6 评论 -
7-8 螺旋方阵 (25 分)(C语言版)
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9#include<stdio.h>原创 2022-03-19 15:19:29 · 509 阅读 · 0 评论 -
7-6 符号配对 (20 分)(C语言版)
请编写程序检查C语言源程序中下列符号是否配对:/与/、(与)、[与]、{与}。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则输出左符号-?。输入样例1:void test(){ int i, A[10]; for (i=0;原创 2022-03-19 15:19:01 · 2480 阅读 · 0 评论 -
7-5 堆栈操作合法性 (20 分)(C语言版)
假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出格式:对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不是。输入样原创 2022-03-19 15:18:35 · 642 阅读 · 0 评论 -
7-4 表达式转换 (40 分)(C语言版)
算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+3*(7-4)+8/4输出样例:2 3 7 4 - * + 8 4 / +#include原创 2022-03-19 15:18:03 · 949 阅读 · 0 评论 -
7-3 彩虹瓶 (25 分)(C语言版)
一开始我觉得这道题很难(因为字多),后来读完了,其实就是考察栈的操作。大家好好读读题,把题读明白就没有什么太大问题了。彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方.原创 2022-03-19 15:17:21 · 401 阅读 · 0 评论 -
7-12 排序 (25 分)(C语言版)
1:尝试用了七种排序:快速排序、选择排序、冒泡排序(超时)、插入排序、希尔排序、改进的希尔排序、归并排序。2:只有冒泡排序超时,其他都能通过这道题。给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:数据1:只有1个元素;数据2:11个不相同的整数,测试基本正确性;数据3:103个随机整数;数据4:104个随机整数;数据5:105个随机整数;数据6:105个顺序整数;数据7:105个逆序整数;数据.原创 2022-03-06 19:16:14 · 414 阅读 · 0 评论 -
7-2 有趣的最近公共祖先问题 (25 分)(C++版)
给出一颗二叉树的后序遍历和中序遍历,你能计算出两个结点的最近公共祖先吗?输入格式:第一行给出两个整数N(N<=10000)和M(M<=10000),分别代表二叉树的结点数和我们接下来的询问数。第二行和第三行分别给出N个整数,每个整数用空格分开,分别代表二叉树的后序遍历和中序遍历。接下来M行,每行给出两个整数,代表我们要询问的两个结点的编号a和b。输出格式:对于每个我们要求的询问:1.如果a和b中有一个或两个不在树上,输出"ERROR"。2.否则在一行中输出一个整数,表示a和b的最原创 2022-02-19 16:22:16 · 1266 阅读 · 0 评论 -
7-6 最短工期 (25 分)(C++版)
一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。输入格式:首先第一行给出两个正整数:项目里程碑的数量 N(≤100)和任务总数 M。这里的里程碑从 0 到 N−1 编号。随后 M 行,每行给出一项任务的描述,格式为“任务起始里程碑 任务结束里程碑 工作时长”,三个数字均为非负整数,以空格分隔。输出格式:如果整个项目的安排是合理可行的,在一行中输原创 2022-02-19 16:21:55 · 514 阅读 · 0 评论 -
7-5 任务调度的合理性 (25 分)(C语言版)
先说思路:是否能实现拓扑排序。假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。但是需要注意的是,对一组.原创 2022-02-19 16:21:36 · 524 阅读 · 1 评论 -
7-4 城市间紧急救援 (25 分)(C语言版)
先说思路:主要是用到Dijkstra算法,看下面代码吧。作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0 ~ (N−1);M是快速道路的条数;S是.原创 2022-02-19 16:21:05 · 1070 阅读 · 0 评论 -
7-3 旅游规划 (25 分)(C语言版)
先说思路:最短路径问题。Dijkstra算法。【不难,看下面代码就能理解】有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的.原创 2022-02-22 21:38:57 · 1220 阅读 · 0 评论 -
7-2 畅通工程之最低成本建设问题 (30 分)(C语言版)
先说思路:看是否能实现一个最小生成树。【下面代码用的Prim算法】某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了有可能建设成快速路的若干条道路的成本,求畅通工程需要的最低成本。输入格式:输入的第一行给出城镇数目N (1<N≤1000)和候选道路数目M≤3N;随后的M行,每行给出3个正整数,分别是该条道路直.原创 2022-02-18 13:17:11 · 2064 阅读 · 0 评论 -
7-1 公路村村通 (30 分)(C语言版)
先说思路:看题,使所以点互通,可以看出这使一个求最小生成树的问题。两种方法:方法一:Kruskal算法:加边。方法二:Prim算法:加点。【下面代码有两种,任选其一即可】现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇.原创 2022-02-18 13:16:47 · 5202 阅读 · 0 评论 -
6-2 邻接表存储图的广度优先遍历 (20 分)(C语言版)
先说思路:BFS用队列实现。【不难,看下面代码即可】试实现邻接表存储图的广度优先遍历。函数接口定义:void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) );其中LGraph是邻接表存储的图,定义如下:/* 邻接点的定义 */typedef struct AdjVNode *PtrToAdjVNode; struct AdjVNode{ Vertex AdjV; /* 邻接点下标 */ PtrTo.原创 2022-02-18 13:16:19 · 1941 阅读 · 0 评论 -
6-1 邻接矩阵存储图的深度优先遍历 (20 分)(C语言版)
先说思路:DFS两种方法实现:递归和非递归。【不难,看下面代码即可】。试实现邻接矩阵存储图的深度优先遍历。函数接口定义:void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) );其中MGraph是邻接矩阵存储的图,定义如下:typedef struct GNode *PtrToGNode;struct GNode{ int Nv; /* 顶点数 */ int Ne; /* 边数 */ WeightT.原创 2022-02-18 13:15:49 · 2457 阅读 · 0 评论 -
7-4 完全二叉树的层序遍历 (25 分)(C语言版)
一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍历序列。所有数字都以 1 个空格分隔,行首尾不得有原创 2022-02-18 13:14:57 · 1442 阅读 · 0 评论 -
7-1 房屋分拆 (25 分)(C语言版)
厂长买了一整间房屋作为车间,现准备将整个房屋分成若干个车间。装修公司规定分拆房屋的价格等于被分拆房屋的面积。如想将面积为200的房间分拆为面积为80、70和50的三个车间,第一次将房屋分拆为面积120和80的两个房间,花费200,第二次将面积为120的房间分拆为面积为70和50的两个房间,花费120,总花费为320。如果采用另一种方案,第一次将面积200的房屋分拆为150和50,花费200,第二次将面积为150的房间分拆为80和70的房间,花费150,则总花费为350。显然第一种方案花费更少。请编写程序为厂原创 2022-02-18 13:14:10 · 1802 阅读 · 0 评论 -
8-1 表达式求值大作业 (25 分)(C语言版)
设计并实现一个表达式求职的大作业。 提交材料:源程序、大作业报告 满分:25分 评分依据:程序运行结果(15分)、大作业报告(10分) 根据程序运行结果,满分15分,分四个等级。实现一位数的后缀表达式求值(10分)、多位(包括小数)后缀表达式(12分)、一般的中缀表达式求值(包括+、-、、/、())(13分)、任意多位中缀表达式求值(包括+、-、、/、()、负数、除数为0)(15分)。中缀直接求值,还是先转后缀再求值,由学生自己设计,等级没区别。 大作业报告,满分10分,其中分析设计(3分),算法设计(3分原创 2022-02-18 13:12:34 · 712 阅读 · 0 评论 -
7-4 还原二叉树 (25 分)(C语言版)
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5#include<stdio.h>int getHigh(char a[],char b[],int n){ int i; if(原创 2022-02-18 13:09:27 · 689 阅读 · 0 评论 -
7-3 二叉树的遍历(简单) (25 分)(C++版)
二叉树作为FDS课程最核心的数据结构之一,要求每个人都掌握!这是一道简单的二叉树问题!我们将给出一颗二叉树,请你输出它的三种遍历,分别是先序遍历,中序遍历,后序遍历!输入格式:二叉树将以这样的形式给出:第一行给出一个正整数N(N<=100),表示二叉树上的节点个数!接下来N行,每行包含三个整数,i,l,r,分别代表第i个节点的左右孩子!如果它的左/右孩子为空,则在对应位置给出-1!题目保证1是根节点!输出格式:请你输出它的三种遍历!第一行输出先序遍历,第二行输出中序遍历,第三行输转载 2022-02-18 13:08:52 · 2310 阅读 · 0 评论 -
7-1 按层次遍历二叉树 (25 分)(C语言版)
以字符串的形式定义一棵二叉树的先序序列,若字符是‘#’, 表示该二叉树是空树,否则该字符是相应结点的数据元素。读入相应先序序列,建立二叉树,然后按层次遍历该二叉树并输出结点数据。输入格式:字符串形式的先序序列(即结点的数据类型为单个字符)输出格式:按层次遍历二叉树的结果输入样例:在这里给出一组输入。例如:ABDG##HI####CE#J##F##输出样例:在这里给出相应的输出。例如:ABCDEFGHJI#include <stdio.h>#include <st原创 2022-02-15 14:20:34 · 6620 阅读 · 0 评论 -
6-5 统计二叉树叶子结点个数 (10 分)(C语言版)
先说思路:有下面三种情况:如果是空树,返回0;如果只有一个根结点,即左右子树为空NULL,返回1;如果左右子树不空,返回递归求左右子树叶子结点之和。本题要求实现一个函数,可统计二叉树的叶子结点个数。函数接口定义:int LeafCount ( BiTree T);T是二叉树树根指针,函数LeafCount返回二叉树中叶子结点个数,若树为空,则返回0。裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typede.原创 2022-02-15 14:20:11 · 14293 阅读 · 0 评论 -
6-4 二叉树的非递归遍历 (30 分)(C语言版)
先说思路:前提会先序、中序、后序怎么来的。先序:第一次遇见就访问;中序:第二次遇见访问;后序:第三次遇见才访问。本题要求用非递归的方法实现对给定二叉树的 3 种遍历。函数接口定义:void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Pos.原创 2022-02-15 14:19:37 · 414 阅读 · 0 评论 -
6-3 先序输出叶结点 (15 分)(C语言版)
用递归,看下面代码。本题要求按照先序遍历的顺序输出给定二叉树的叶结点。函数接口定义:void PreorderPrintLeaves( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};函数PreorderPrintL.原创 2022-02-15 14:19:10 · 6922 阅读 · 0 评论 -
6-2 二叉树的遍历 (25 分)(C语言版)
先说思路:前三个函数用递归;层序遍历函数用队列。本题要求给定二叉树的4种遍历。函数接口定义:void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );void LevelorderTraversal( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;.原创 2022-02-15 14:18:44 · 2310 阅读 · 0 评论 -
6-1 求二叉树高度 (20 分)(C语言版)
先说思路:先判断是否为空树;分别递归求左、右子树的高度;取二者的max;返回max+1本题要求给定二叉树的高度。函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};要求.原创 2022-02-15 14:18:12 · 8782 阅读 · 0 评论 -
7-4 银行排队问题之单队列多窗口加VIP服务 (40 分)
假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。有些银行会给VIP客户以各种优惠服务,例如专门开辟VIP窗口。为了最大限度地利用资源,VIP窗口的服务机制定义为:当队列中没有VIP客户时,该窗口为普通顾客服务;当该窗口空闲并且队列中有VIP客户在等待时,排在最前面的VIP客户享受该窗口的服务。同时,当轮到某VIP客户出列时,若VIP窗口非空,该客户可以选择空闲的普通窗口原创 2022-02-15 14:17:41 · 1361 阅读 · 0 评论 -
7-3 银行排队问题之单队列多窗口服务 (30 分)(C语言版)
假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。输入格式:输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾客的到达时间T和事务处理时间P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数K(≤10),为开设的营业原创 2022-02-15 14:15:39 · 1310 阅读 · 0 评论 -
7-1 银行业务队列简单模拟 (30 分)(C语言版)
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务处理完成的顺序输出顾客原创 2022-02-15 14:13:45 · 4158 阅读 · 3 评论 -
7-4 堆栈操作合法性 (25 分)(C语言版)
假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出格式:对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不是。输入样转载 2022-02-15 14:13:10 · 658 阅读 · 0 评论 -
7-3 彩虹瓶 (25 分)(C语言版)
还行,不难,看下面代码就行。彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆上去。当一种颜色装填完以后,先看看货架顶端的一箱是不是下一个要装填的颜色,如.原创 2022-02-12 15:21:05 · 2852 阅读 · 2 评论 -
7-2 符号配对 (25 分)(C语言版)
请编写程序检查C语言源程序中下列符号是否配对:/与/、(与)、[与]、{与}。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则输出左符号-?。输入样例1:void test(){ int i, A[10]; for (i=0;原创 2022-02-12 15:20:38 · 1499 阅读 · 1 评论 -
7-1 列车厢调度 (25 分)(C语言版)
1 ====== <--移动方向 / 3 ===== \ 2 ====== -->移动方向 大家或许在某些数据结构教材上见到过“列车厢调度问题”(当然没见过也不要紧)。今天,我们就来实际操作一下列车厢的调度。对照上方的ASCII字符图,问题描述如下:有三条平行的列车轨道(1、2、3)以及1-3和2-3两段连接轨道。现有一列车厢停在1号轨道上,请利用两条连接轨道以及3号轨道,将车厢按照要求的顺序转移到2号轨...原创 2022-02-12 15:20:24 · 2209 阅读 · 0 评论 -
7-3 一元多项式的乘法与加法运算 (15 分)(C语言版)
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例:15 24 -25 22 30 21 -10 20原创 2022-02-12 15:19:54 · 1460 阅读 · 4 评论