HBU-2022秋线上作业
河大数据结构课代码
星河边采花
JiangZY
展开
-
R7-3 排座位
R7-3 排座位 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入第一行给出3个正整数:(≤100),即前来参宴的宾客总人数,则这些人从1到编号;为已知两两宾客之间的关系数;为查询的条数。随后行,每行给出一对宾客之间的关系,格式为:,其中为1表示是朋友,-1表示是死对头。注意两个人不可能既是朋友又是敌人。最后行,每行给出一对需要查询的宾客编号。这里假设朋友的朋原创 2022-12-07 22:19:30 · 176 阅读 · 0 评论 -
R7-1 叶节点求和
R7-1 叶节点求和 数据结构测试 树 的有N个节点(N>=0)的二叉树,求叶节点元素之和输入格式:第一行是一个非负整数N,表示有N个节点第二行是一个整数k,是树根的元素值接下来有N-1行,每行是一个新节点,格式为r d e三个整数,r表示该节点的父节点元素值(保证父节点存在);d是方向,0表示该节点为父节点的左儿子,1表示右儿子;e是该节点的元素值。输出格式:对于图片中的二叉树:32020 0 1020 1原创 2022-12-07 22:17:01 · 224 阅读 · 0 评论 -
05-树7 堆中的路径
05-树7 堆中的路径 将一系列给定数字依次插入一个初始为空的小顶堆。随后对任意给定的下标,打印从到根结点的路径。每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。对输入中给出的每个下标,在一行中输出从到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。原创 2022-12-07 15:30:56 · 131 阅读 · 0 评论 -
2022秋线上作业-第6次-第13-15周(排序、查找选择题)
2022秋线上作业-第6次-第13-15周(排序、查找选择题)原创 2022-12-06 22:38:44 · 170 阅读 · 0 评论 -
2022秋线上作业-第6次-第13-15周(排序、查找判断题)
2022秋线上作业-第6次-第13-15周(排序、查找习题)【答案】错误【解析】由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相同元素的相对顺序,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱,所以shell排序是不稳定的。【答案】正确【解析】具有相同函数值的关键字对该散列函数来说称作同义词。【答案】错误【解析】差不超过2,不是高度相同【答案】正确【答案】正确【答案】错误【解析】二分查找的平均复杂度是O(logN),用在数组上。原创 2022-12-06 22:25:07 · 581 阅读 · 3 评论 -
7-1 二分查找 (三种代码)
7-1 二分查找 (三种代码) 利用二分查找找出所给出的数在数组中的下标第一行输入n和m表示数组有n个数据,m表示要对m个数进行查找所有输出在一行完成,行末没有多余空格和多余回车。思路1:既然是查找,那便少不了map了正经二分:偷懒二分:主要是使用了lower_bound实现二分,大家可以自行百度原创 2022-12-06 21:57:55 · 610 阅读 · 0 评论 -
7-2 冒泡法排序 分数 30
7-2 冒泡法排序 分数 30 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。本题要求对任意给定的K(原创 2022-12-06 21:47:50 · 414 阅读 · 0 评论 -
还原二叉树 分数 15
还原二叉树 分数 15 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出为一个整数,即该二叉树的高度。原创 2022-12-04 21:20:10 · 346 阅读 · 0 评论 -
中国大学MOOC-陈越、何钦铭-数据结构-2022秋期末考试
中国大学MOOC-陈越、何钦铭-数据结构-2022秋期末考试根据后序和中序遍历输出先序遍历本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。在一行中输出以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。输出样例: 代码:原创 2022-12-04 20:29:13 · 511 阅读 · 0 评论 -
根据后序和中序遍历输出先序遍历
根据后序和中序遍历输出先序遍历 本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。在一行中输出以及该树的先序遍历结果输出样例:思路:刚刚又遇到了这道题,已经是第7,8遍见到它了,从最开始的搜到答案看不懂到后来,能懂,但不会写到后来,能写,但得看看标准代码到现在,随手几分钟就写出来了回头看看,学习真原创 2022-12-04 19:40:11 · 236 阅读 · 0 评论 -
数据结构 树练习题
数据结构 树练习题 1.一棵有124个结点的完全二叉树,其 叶结点个数是确定的。【答案】正确【解析】完全二叉树若设二叉树的深度为h 除第 h 层外 其它各层 1~(h-1) 的结点数都达到最大个数(即1~(h-1)层为一个满二叉树) 第 h 层所有的结点都连续集中在最左边 就是完全二叉树124 = 1 + 2 + 4 + 8 + 16 + 32 + 61有61个叶节点2.二叉树中序线索化后,不存在空指针域。【答案】错误【解析】非空二叉树中序遍历第一个结点无前驱,最后一个结点无后继,原创 2022-12-04 18:50:04 · 2394 阅读 · 0 评论 -
3 搜索树判断 分数 25作者 DS课程组单位 浙江大学
对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。原创 2022-11-26 22:49:41 · 460 阅读 · 0 评论 -
打印选课学生名单 分数 25
假设全校有最多40000名学生和最多2500门课程。现给出每个学生的选课清单,要求输出每门课的选课学生名单。原创 2022-11-26 18:04:10 · 254 阅读 · 0 评论 -
整型关键字的散列映射
整型关键字的散列映射 给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。模拟散列,有冲突的话,这个题要求线性探测,那就++向后继续寻找。 注意对边界的判断,如果走到了最后,要从头开始原创 2022-11-26 16:45:11 · 562 阅读 · 0 评论 -
PAT排名汇总分数 25
PAT排名汇总分数 25 计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。原创 2022-11-26 16:27:13 · 320 阅读 · 0 评论 -
奥运排行榜 分数 25
奥运排行榜 分数 25每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。原创 2022-11-26 15:39:05 · 279 阅读 · 0 评论 -
7-3 顺序存储的二叉树的最近的公共祖先问题
7-3 顺序存储的二叉树的最近的公共祖先问题 设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。原创 2022-11-16 21:25:35 · 201 阅读 · 0 评论 -
7-4 树的遍历
7-4 树的遍历 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。原创 2022-11-16 11:32:29 · 76 阅读 · 0 评论 -
7-1 树的同构
7-1 树的同构 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。原创 2022-11-16 10:48:06 · 145 阅读 · 0 评论 -
2-5 修理牧场
2-5 修理牧场 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。原创 2022-10-28 21:50:21 · 164 阅读 · 0 评论 -
2-4 朋友圈
2-4 朋友圈 某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。原创 2022-10-28 21:47:20 · 78 阅读 · 0 评论 -
2-3 社交网络图中结点的“重要性”计算
2-3 社交网络图中结点的“重要性”计算 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。“紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够更快地(平均意义下)到达网络中的其它结点,因而在该网络的传播过程中有更重要的价值。原创 2022-10-28 21:37:49 · 753 阅读 · 0 评论 -
2-2 畅通工程之局部最小花费问题
2-2 畅通工程之局部最小花费问题 某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。原创 2022-10-28 21:30:09 · 77 阅读 · 0 评论 -
HBU 数据结构月考(线性结构)
HBU 数据结构月考(线性结构)。5判断,6选择,1函数题,2编程题。每个人的题都是题库随机抽的。原创 2022-10-19 21:54:18 · 291 阅读 · 0 评论 -
3-9 堆栈模拟队列
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。SSitemSS实现队列的操作,即入队和出队。原创 2022-10-14 09:58:14 · 70 阅读 · 0 评论 -
3-10 串的模式匹配
给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出。如果找不到,则输出“Not Found”。本题旨在测试各种不同的匹配算法在各种数据情况下的表现。原创 2022-10-13 22:37:48 · 86 阅读 · 0 评论 -
3-8 求前缀表达式的值
算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如。请设计程序计算前缀表达式的结果值。原创 2022-10-13 22:36:51 · 95 阅读 · 0 评论 -
3-7 表达式转换
算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。原创 2022-10-13 22:35:58 · 86 阅读 · 0 评论 -
3-6 银行业务队列简单模拟
3-6 银行业务队列简单模拟 设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。原创 2022-10-13 22:35:03 · 342 阅读 · 0 评论 -
3-5 单链表分段逆转
3-5 单链表分段逆转 其中List/* 存储结点数据 *//* 指向下一个结点的指针 */};/* 定义单链表类型 */L是给定的带头结点的单链表,K是每段的长度。函数K_Reverse应将L中的结点按要求分段逆转。原创 2022-10-13 22:32:41 · 144 阅读 · 0 评论 -
3-4 双端队列
3-4 双端队列 其中Deque/* 存储元素的数组 *//* 队列的头、尾指针 *//* 队列最大容量 */};Push和Inject应该在正常执行完操作后返回true,或者在出现非正常情况时返回false。当Front和Rear相等时队列为空,Pop和Eject必须返回由裁判程序定义的ERROR注意:Push和Inject应该在正常执行完操作后返回true,或者在出现非正常情况时返回false。当Front和Rear相等时队列为空,Pop和Eject必须返回由裁判程序定义的ERROR。思路:所以,前。原创 2022-10-13 22:10:12 · 82 阅读 · 0 评论 -
3-3 另类循环队列
3-3 另类循环队列 其中Queue/* 存储元素的数组 *//* 队列的头指针 */int Count;/* 队列中元素个数 *//* 队列最大容量 */};注意:如果队列已满,AddQ函数必须输出“Queue Full”并且返回false;如果队列是空的,则DeleteQ函数必须输出“Queue Empty”,并且返回ERROR。原创 2022-10-13 21:59:45 · 270 阅读 · 0 评论 -
3-2 数组元素的区间删除
3-2 数组元素的区间删除 其中A是整型数组,存储原始线性表的元素;L是表长,即A中元素的个数;minA和maxA分别为待删除元素的值域的下、上界。函数Delete应将A中所有值大于minA而且小于maxA的元素删除,同时保证表中剩余元素保持顺序存储,并且相对位置不变,最后返回删除后的表长。原创 2022-10-13 21:52:51 · 91 阅读 · 0 评论 -
双端队列(双链表实现)PTA 3-1 Deque
双端队列(双链表实现)PTA 3-1 Deque ;};双端队列中有指向首尾的两个指针。注意,Front与头节点地位相同,不存元素。每个节点包括数据Element 和 Next,Last指针,分别指向下一个节点和上一个节点。原创 2022-10-12 11:34:24 · 687 阅读 · 0 评论 -
2-10 出栈序列的合法性
2-10 出栈序列的合法性 给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, ..., N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。输入格式:输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元素个数)、K(待检查的出栈序列个数)。最后 K 行,每行给出 N 个数字的出栈序列。所有同行数原创 2022-10-10 09:33:17 · 403 阅读 · 2 评论 -
2-9 彩虹瓶
2-9 彩虹瓶 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆上去。原创 2022-10-10 09:28:48 · 69 阅读 · 0 评论 -
2-8 符号配对
2-8 符号配对 请编写程序检查C语言源程序中下列符号是否配对:/*与*/、(与)、[与]、{与}。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。*与*/、(与)、[与]、{与}。原创 2022-10-10 09:26:26 · 115 阅读 · 0 评论 -
2-7 一元多项式求导
2-7 一元多项式求导 设计函数求一元多项式的导数。原创 2022-10-10 09:23:03 · 100 阅读 · 0 评论 -
2-6 两个有序序列的中位数
2-6 两个有序序列的中位数 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,AN−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个数(A0为第1个数)。原创 2022-10-10 09:20:31 · 56 阅读 · 0 评论 -
2-5 Two Stacks In One Array
Write routines to implement two stacks using only one array. Your stack routines should not declare an overflow unless every slot in the array is used.where is the index of a stack which is either 1 or 2; is the size of the stack array; and is defined a原创 2022-10-10 09:18:45 · 59 阅读 · 0 评论