数据结构
文章平均质量分 80
正常小呆
这个作者很懒,什么都没留下…
展开
-
Dijkstra算法整理
使用邻接矩阵存储图,其实就是使用一个二维数组存储图,来实施Dijkatra算法时间复杂度上述Dijkstra算法中执行了两个嵌套while循环,每个循环遍历一遍所有图结点。记 V 为图结点个数,则使用邻接矩阵实现的Dijkstra算法的时间复杂度为 O(V^2).采用邻接表存储图,实施Dijkatra算法。与第一种方法相同的是,在 Dijkstra 的算法中需要维护两个集合,一组是已包含在在 SPT(最短路径树)中的顶点列表,另一组是尚未包含的顶点。与第一种方法不同的是,这里使用邻接表表示和存储图,这样原创 2022-07-12 22:36:06 · 432 阅读 · 1 评论 -
【数据结构与算法暑期实习】PTA Hand-made Cream(动态规划)
原题是个英文题。做一份奶油面包需要一块面包和一种奶油的搭配。对于每一个面包/每一种奶油,都会有一个打分,然后成品奶油面包的总打分=面包/奶油各自打分的乘积。(也就是说,面包打分和奶油打分都可以为负,但正所谓负负得正,两个负分食品搭配在一起也会有意想不到的惊喜)按顺序给出可供选择的面包、按顺序给出可供选择的奶油。对于每一种面包/奶油,厨师都要即刻决定要还是不要。按照选择的顺序对面包和奶油进行搭配,计算出总打分。输入: 第一行输入面包个数、奶油个数;第二行输入每块面包的打分;第三行输入每块奶油的打分。3 4原创 2022-07-10 21:52:39 · 562 阅读 · 0 评论 -
常见数据结构的定义与有关函数
邻接矩阵数据结构的定义函数(初始化图;插入边;建立图)2.邻接表邻接表数据结构定义:函数(初始化图;插入边;建立图)线性表1.栈堆栈的定义栈的常用函数:创建空栈、判断栈满/栈空、入栈、出栈、找栈首元素2.队列(顺序存储)结构定义:常用函数:创建空队列、判断队空/队满、求队列长度、返回队首元素、入队、出队2.队列(链式存储)3.优先队列二叉树结构定义函数...原创 2022-07-09 22:41:32 · 557 阅读 · 1 评论 -
【数据结构与算法暑期实习】PTA 森森旅游(邻接表+堆优化的Dijkstra算法)
好久没出去旅游啦!森森决定去 Z 省旅游一下。Z 省有 n 座城市(从 1 到 n 编号)以及 m 条连接两座城市的有向旅行线路(例如自驾、长途汽车、火车、飞机、轮船等),每次经过一条旅行线路时都需要支付该线路的费用(但这个收费标准可能不止一种,例如车票跟机票一般不是一个价格)。Z 省为了鼓励大家在省内多逛逛,推出了旅游金计划:在 i 号城市可以用 1 元现金兑换 ai 元旅游金(只要现金足够,可以无限次兑换)。城市间的交通即可以使用现金支付路费,也可以用旅游金支付。具体来说,当通过第 j 条旅行线路时,原创 2022-07-07 23:10:15 · 1152 阅读 · 1 评论 -
【数据结构与算法暑期实习】PTA 那就别担心了 (图的遍历)
下图转自“英式没品笑话百科”的新浪微博 —— 所以无论有没有遇到难题,其实都不用担心。博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义……)。现给定一个更为复杂的逻辑推理图,本题就请你检查从一个给定命题到另一个命题的推理是否是“逻辑自洽”的,以及存在多少种不同的推理路径。例如上图,从“你遇到难题了吗?”到“那就别担心了”就是一种“逻辑自洽”的推理,一共有 3 条不同的推理路径。输入格式:输入首先在一行中给出两原创 2022-07-06 22:48:45 · 457 阅读 · 1 评论 -
【数据结构与算法暑期实习】PTA 分而治之(邻接表)
分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。输入格式:输入在第一行给出两个正整数 N 和 M(均不超过10 000),分别为敌方城市个数(于是默认城市从 1 到 N 编号)和连接两城市的通路条数。随后 M 行,每行给出一条通路所连接的两个城市的编号,其间以一个空格分隔。在城市信息之后给出参谋部的系列方案,即一个正整数 K (≤ 100)和随后的 K原创 2022-07-05 22:14:45 · 224 阅读 · 0 评论 -
【数据结构算法暑期实习】PTA Table Tennis(两个队列的排队问题)
A table tennis club has N tables available to the public. The tables are numbered from 1 to N. For any pair of players, if there are some tables open when they arrive, they will be assigned to the available table with the smallest number. If all the tables原创 2022-07-05 22:04:25 · 535 阅读 · 1 评论 -
【数据结构与算法暑期实习】PTA 最短工期
一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。...原创 2022-07-02 08:54:01 · 515 阅读 · 0 评论 -
【数据结构与算法暑期实习】PTA 符号配对
请编写程序检查C语言源程序中下列符号是否配对:/* 与 */、( 与 )、[ 与 ]、{ 与 }。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则输出左符号-?......原创 2022-06-30 23:40:59 · 1849 阅读 · 0 评论 -
【数据结构与算法暑期实习】PTA 网红点打卡攻略
一个旅游景点,如果被带火了的话,就被称为“网红点”。大家来网红点游玩,俗称“打卡”。在各个网红点打卡的快(省)乐(钱)方法称为“攻略”。你的任务就是从一大堆攻略中,找出那个能在每个网红点打卡仅一次、并且路上花费最少的攻略。...原创 2022-06-30 15:52:47 · 420 阅读 · 0 评论 -
【数据结构与算法暑期实习】PTA 树的同构
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。............原创 2022-06-30 11:31:55 · 139 阅读 · 0 评论 -
【数据结构与算法暑期实习】PTA 三足鼎立
当三个国家中的任何两国实力之和都大于第三国的时候,这三个国家互相结盟就呈“三足鼎立”之势,这种状态是最稳定的。现已知本国的实力值,又给出 n 个其他国家的实力值。我们需要从这 n 个国家中找 2 个结盟,以成三足鼎立。有多少种选择呢?......原创 2022-06-30 11:13:27 · 1176 阅读 · 2 评论