2017DS
+
该博客已停用
这个作者很懒,什么都没留下…
展开
-
7. 稀疏矩阵的乘法运算
数据压缩是提高传输、存储效率一种技术。教材第5章介绍了两种简单的压缩存储方法。 本实验要求实现两个稀疏矩阵相乘积的算法。其中稀疏矩阵非零元素数量小于100.输入: 第1个: 稀疏矩阵的行数 列数 非零元个数(三个数都大于0) 三元组 第2个: 稀疏矩阵的行数 ...原创 2017-11-17 13:32:05 · 2273 阅读 · 0 评论 -
12. 图的广度优先遍历
本实验实现邻接表表示下无向图的广度优先遍历。 程序的输入是图的顶点序列和边序列(顶点序列以*为结束标志,边序列以-1,-1为结束标志)。程序的输出为图的邻接表和广度优先遍历序列。例如:程序输入为: a b c d e f * 0,1 0,4 1,4 1,5 2,3 2,5 3,5 -1,-1程序的输出为: the ALGraph ...原创 2017-12-01 22:35:54 · 947 阅读 · 0 评论 -
13、连连看游戏辅助
《连连看》是由一款益智类游戏。 《连连看》只要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。 本题编写程序模拟人进行连连看游戏,电脑模拟人玩连连看的过程如下: 1、分析本局游戏,将本局游戏转化成一个二位数组。0表示空白区域,数字表示该游戏牌为出现在游戏中的第几类游戏牌。 2、利用广度优先搜索算法,判断两个游戏牌是否可以消除。 3、程序模拟人点击可以消除的一对游戏牌进...原创 2017-12-01 22:44:48 · 1046 阅读 · 0 评论 -
14. 计算工程完成的关键路径
说明: AOE 网络是有向无环加权图,其中顶点表示事件,弧表示活动,权表示活动持续的时间,通常可以用来估算工程完成的时间,即图中从开始点到结束点之间最长的路径对应的时间。请完成一个程序,完成下列任务: 1 、计算 AOE 网络对应的拓扑排序。如果排序结果不唯一,请输出按照从小到大的顺序排列的结果。从小到大的顺序就是输入的节点序列顺序(参见下面关于输入格式的说明)。如图1中满足要求的拓扑排序是: ...原创 2017-12-01 23:02:14 · 4398 阅读 · 5 评论 -
15、无向图的各连通分支
3.求解无向图的各连通分支 输入: 第一行为图的节点数n(节点编号0至n-1,0< n<=10) 从第二行开始列出图的边,-1表示输入结束 输出: 输出每个连通分支的广度优先搜索序列(从连通分支的最小编号开始),不同分支以最小编号递增顺序列出 sample: input: 8 0 5 5 2 4 5 5 6 6 2 3 7 0 2 -1 output:...原创 2017-12-01 23:10:47 · 3120 阅读 · 0 评论 -
16. 求两点之间的最短路径
最短路径问题是经典图论问题之一。从工程意义上讲,最短路径问题是对大量工程问题的直观抽象。 最典型的例子是在地图上寻找最短驾车路径。 寻找从A到D的最短路径。测试用例 用例1: 输入: 5,7 A,B,C,E,D <0,3,30>,<0,1,10>,<0,2,20>,<1,3,10>,<1,2,5>,<2,4,3...原创 2017-12-01 23:13:45 · 3977 阅读 · 0 评论 -
17. 排序二叉树
2.建立并中序遍历一个排序二叉树 排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树 输入: 输入有一行,表示若干个要排序的数,输入0时停止 输出 二叉树的凹入表示 和二叉树的中序遍历序列 sample: input: 56 78 34 89 12 35 67 77 22 57 0 output: ...原创 2017-12-15 16:38:59 · 602 阅读 · 0 评论 -
18. 平衡二叉树
程序输入一个字符串(只包含小写字母),请按照字符的输入顺序建立平衡二叉排序树,并分别输出二叉树的先序序列、中序序列和后序序列,最后输出该二叉树向左旋转 90 度后的结构。 例如:向左旋转 90 度后,以每层向里缩进 4 个空格的方式输出,输出结果为: i g fa d c b输入:agxnzyimk 输...原创 2017-12-15 16:41:45 · 913 阅读 · 0 评论 -
19. 快速排序
要求根据给定输入,按照课堂给定的快速排序算法进行排序,输出排序结果和median3的返回值。 midian3是指从头尾和中间取3个元素,将头部元素和3个元素中大小的中间值交换,以避免选出最大元素或者最小元素的情况出现。 注:1,cutoff值为5,元素个数不足cutoff使用插入排序。 2,输入、输出格式参见测试用例。测试用例:用例1: 输入: 41 17...原创 2017-12-15 16:44:21 · 1493 阅读 · 0 评论 -
11. 前缀码判定
前缀码:任何一个字符的编码都不是同一字符集中另一个字符的编码的前缀。 请编写一个程序,判断输入的n个由1和0组成的编码是否为前缀码。如果这n个编码是前缀码,则输出”YES”;否则输出第一个与前面编码发生矛盾的编码。 输入: 第1行为n(表示下面有n行编码) 第2~n+1行为n个由0或1组成的编码 输出:判断结果例如,如果输入:5 00 01 10 110 111 每一...原创 2017-12-01 22:31:00 · 5228 阅读 · 1 评论 -
10. 计算WPL
Huffman编码是通信系统中常用的一种不等长编码,它的特点是:能够使编码之后的电文长度最短。 输入: 第一行为要编码的符号数量n 第二行~第n+1行为每个符号出现的频率 输出: 对应哈夫曼树的带权路径长度WPL测试用例1: 输入: 5 7 5 2 4 9 输出: WPL=60测试用例2: 输入: 5 2 4 2 3 3 ...原创 2017-11-17 16:25:28 · 3178 阅读 · 0 评论 -
8. 广义表的建立与基本操作
采用”头尾法”存储广义表,实现以下广义表的操作: 1.Status CreateGList( GList &L, char *S ) // 根据字符串 S 表示的广义表内容建立广义表数据结构; 2.GList GetHead( GList L) // 取表头运算 3.GList GetTail( GList L) // 取表尾运算 4.void ...原创 2017-11-17 14:02:14 · 2188 阅读 · 0 评论 -
1.约瑟夫问题
0 约瑟夫问题 (本题要求用循环链表实现)约瑟夫问题是一个经典的问题。已知n个人(不妨分别以编号1,2,3,…,n 代表)围坐在一张圆桌周围,从编号为 k 的人开始,从1开始顺时针报数1, 2, 3, …,顺时针数到m 的那个人,出列并输出。然后从出列的下一个人开始,从1开始继续顺时针报数,数到m的那个人,出列并输出,…依此重复下去,直到圆桌周围的人全部出列。输入:n,k,m输...原创 2017-11-03 14:45:10 · 460 阅读 · 0 评论 -
2.一元多项式相乘
题目说明: 要求采用链表形式,求两个一元多项式的乘积:h3 = h1*h2。函数原型为:void multiplication( NODE * h1, NODE * h2, NODE * h3 )。 输入: 输入数据为两行,分别表示两个一元多项式。每个一元多项式以指数递增的顺序输入多项式各项的系数(整数)、指数(整数)。 例如:1+2x+x2表示为:<1,0>,&l...原创 2017-11-03 14:51:22 · 1354 阅读 · 1 评论 -
3. 括号匹配
假设一个算术表达式中包含圆括号、方括号两种类型的括号,试编写一个判断表达式中括号是否匹配的程序,匹配返回Match succeed!,否则返回Match false!。例[1+2*(3+4*(5+6))]括号匹配(1+2)(1+2[(1+2)+3)括号不匹配输入: 包含圆括号、方括号两种类型括号的算术表达式输出: 匹配输出:Match succeed! 不匹配输出 :Ma...原创 2017-11-03 15:07:30 · 510 阅读 · 0 评论 -
4.从中缀向后缀转换表达式
问题描述 中缀表达式就是我们通常所书写的数学表达式,后缀表达式也称为逆波兰表达式,在编译程序对我们书写的程序中的表达式进行语法检查时,往往就可以通过逆波兰表达式进行。我们所要设计并实现的程序就是将中缀表示的算术表达式转换成后缀表示,例如,将中缀表达式 (A 一 (B*C 十 D)*E) / (F 十 G ) 转换为后缀表示为: ABC*D十E*–FG十/ 注意:为了简化编程实现,假定...原创 2017-11-03 15:10:11 · 661 阅读 · 0 评论 -
5. 游戏2048
《2048》是一款数字益智游戏,在4*4的方格中通过上下左右滑动来控制数字的变化,游戏胜利的条件是出现2048这个数字。 游戏规则如下: 1、玩家每次可以选择上下左右其中一个方向去滑动,定义滑动的方向为前,滑动的反方向为后,每滑动一次,所有的数字方块都会向前移动靠拢至边缘。 2、每一行(列)从最前方第二个方块依次向前方方块发起撞击,相撞的两个方块数字不同时不发生变化,撞击发起块向后顺延,相撞...原创 2017-11-03 15:14:08 · 944 阅读 · 0 评论 -
6. 矩阵的快速转置算法
矩阵的快速转置算法数据压缩是提高传输、存储效率一种技术。教材第5章介绍了两种简单的压缩存储方法。 本实验要求实现三元组顺序表表示下的矩阵快速转置算法。输入: 稀疏矩阵的行数、列数、非零元个数(三个数都大于0) 以行为主序输入稀疏矩阵三元组表 输出: 辅助数组num[ ] 辅助数组cpot[ ] 以行为主序输出对应的转置矩阵三元组表例 输入: 6 7 8 1 2 ...原创 2017-11-03 15:17:42 · 2387 阅读 · 0 评论 -
9. 树的建立与基本操作
在本实验中,程序的输入是一个表示树结构的广义表。假设树的根为 root ,其子树森林 F = ( T1 , T2 , … , Tn ),设与该树对应的广义表为 L ,则 L =(原子,子表 1 ,子表 2 , … ,子表 n )。例如:广义表 (a,(b,(c),(d)),(f,(g),(h ),(i))) 表示的树如图所示: 程序的输出为树的层次结构、树的度以及各种度的结点个数。 在输出...原创 2017-11-17 14:54:25 · 2032 阅读 · 0 评论 -
20. 堆排序
实验要求:用堆排序算法按关键字递减的顺序排序。程序输入:待排序记录数(整数)和待排序记录(整数序列);程序输出:建堆结果和建堆后第一、第二次筛选结果。(注:待排序记录数大于等于3)测试用例:用例1: 输入: 6 11 12 16 14 15 10 输出: 16 15 11 14 12 10 15 14 11 10 12 14 12 11 10 用例2...原创 2017-12-15 16:46:21 · 1012 阅读 · 0 评论