用Java写数据结构作业
枕石 入梦
原昵称Dreamchaser追梦,现就职于滴滴网约车,00后后端攻城狮一枚。喜欢思考,爱好健身、吉他,热衷于研究IT技术,探索未知领域。写博文主要是为了学习分享以及记录我的生活。
展开
-
【短学期算法作业】团伙问题(并查集)
题目介绍团伙问题(并查集)在城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:(1)朋友的朋友是朋友;(2)敌人的敌人是朋友。这n个人可以划分为若干个团伙,使得每个团伙中任意两个成员均为朋友。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算这个城市最多可能有多少个团伙?Input输入包含多组数据,对于每组数据:第1行为n和m,1<n<1000,1<=m<=100000;以下m行,每行为p、x、y,p的值为0或1,原创 2020-09-10 10:20:15 · 1746 阅读 · 2 评论 -
【短学期算法作业】Kruskal算法的实现(并查集)
题目介绍某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了连接两个城镇需要花费的代价。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少花费多少代价就可以完成工程?Input输入包含多组数据,对于每组测试数据:第一行包含两个正整数N和M(0 <=N <=1000,0 < M < 5000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以1~N编号。接下来是M行道路信息。每一行有三个整数原创 2020-09-10 10:16:12 · 485 阅读 · 0 评论 -
【短学期算法作业】八皇后问题(回溯法)
题目介绍八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际象棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一对角线上,问有多少种摆法。高斯认为有76种方案。1854年柏林象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。Input无输入数据Output输出所有解题目思路根据规则我们可以得出每行必有一个皇后,则找指定皇后时只需在当行遍历。首先根据规则找到一原创 2020-09-10 10:09:36 · 576 阅读 · 0 评论 -
【短学期算法作业】用Java写迷宫问题(栈)
题目介绍迷宫问题(栈)有一个迷宫地图,有一些可达的位置,也有一些不可达的位置(障碍、墙壁、边界)。从当前位置到下一个位置只能通过向上(或者向右、或者向下、或者向左)走一步来实现,从起点出发,如何找到一条到达终点的通路。用二维矩阵来模拟迷宫地图,1代表该位置不可达,0代表该位置可达。每走过一个位置就将地图的对应位置标记,以免重复。找到通路后打印每一步的坐标,最终到达终点位置。Input一个n5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。Output左上角到右下角的最短路径,格式如样例所示原创 2020-09-10 08:23:42 · 579 阅读 · 0 评论 -
用Java写数据结构作业——7-2 任务调度的合理性 (25分)
7-2 任务调度的合理性 (25分)假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。但是需要注意的是,对一组原创 2020-05-11 18:34:43 · 559 阅读 · 0 评论 -
用Java写数据结构作业——7-2 Dijkstra算法(模板) (30分)
7-2 Dijkstra算法(模板) (30分)给一个n(1 ≤ n ≤ 2500) 个点 m(1 ≤ m ≤ 6200) 条边的无向图,求 s 到 t 的最短路。输入格式:第一行四个由空格隔开的整数 n、m、s、t。之后的 m 行,每行三个正整数 si、ti、wi(1≤wi≤109),表示一条从si 到 ti 长度为 wi 的边。输出格式...原创 2020-04-28 18:05:31 · 1254 阅读 · 0 评论 -
用Java写数据结构作业——7-1 哈利·波特的考试 (25分)
7-1 哈利·波特的考试 (25分)哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利...原创 2020-04-28 12:47:01 · 652 阅读 · 1 评论 -
用Java写数据结构作业——7-2 六度空间 (30分)
7-2 六度空间 (30分)“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学...原创 2020-04-19 12:55:20 · 570 阅读 · 0 评论 -
用java写数据结构作业——7.2堆并查集哈夫曼树二
数据结构第9周作业——堆并查集哈夫曼树二7-2 并查集【模板】 (60分)给出一个并查集,请完成合并和查询操作。输入格式:第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi。当Zi=1时,将Xi与Yi所在的集合合并。当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则的话...原创 2020-04-13 17:51:30 · 389 阅读 · 0 评论 -
用Java写数据结构作业——7-1构造哈夫曼树
7-1 构造哈夫曼树 (40分)输入一些单词及其出现的频度,构造一棵哈夫曼树,输出哈夫曼编码的平均码长。输入格式:输入N,表示有N个单词,以下N行,每一行表示一个单词及其频度。输出格式:平均码长用浮点数类型表示,保留小数点后5位。输入样例:在这里给出一组输入。例如:11The 1192of 677a 541to 518and 462that 242he 195is ...原创 2020-04-13 17:53:39 · 2694 阅读 · 5 评论 -
用Java写数据结构作业——7-1 拯救007
7-1 拯救007 (25分)在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!(据说当年替身演员被最后一条鳄鱼咬住了脚,幸好穿的是特别加厚的靴子才逃过一劫。)设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)...原创 2020-04-18 23:14:52 · 1050 阅读 · 1 评论