数据结构复习
文章平均质量分 62
Robbery07
这个作者很懒,什么都没留下…
展开
-
图论算法整理与模板总结(一)
图论算法整理与模板总结(一)这篇博客主要是acwing算法基础课的学习结果,同时作为图论的复习。DFS与BFS暂时不整理。拓扑排序在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:(1)每个顶点出现且只出现一次。(2)若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排原创 2021-09-02 16:49:31 · 167 阅读 · 0 评论 -
7-10 公路村村通 (30分) (Prim算法应用)
PTA 数据结构与算法题目集7-10 公路村村通 (30分)现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入原创 2021-02-01 10:01:07 · 668 阅读 · 0 评论 -
列出联通集(DFS与BFS应用)
PTA 数据结构与算法题目集(中文)题目7-6 列出连通集 (25分)给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{ v1 v2 … vk }" 的格式,每行输出一个连通集。先输出DFS的结果原创 2021-01-28 10:22:13 · 563 阅读 · 0 评论 -
Dijkstra算法应用(二) Emergency
Dijkstra算法应用PTA Advanced level1003 Emergency (25分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the leng原创 2021-01-24 16:08:41 · 331 阅读 · 0 评论 -
Dijkstra应用(一) 旅游规划
Dijkstra算法应用PTA数据结构与算法题目集(中文)7-9 旅游规划 (25分)有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号原创 2021-01-24 15:22:38 · 292 阅读 · 0 评论 -
二叉树非递归遍历实现(前序,中序,后序,层序)
二叉树的非递归遍历实现(附详细注释)前序遍历void PreorderTraversal(BinTree BT) //前序非递归遍历; { BinTree T = BT; stack<BinTree> s; while (T || s.size()) { while (T) //先递归访问左子树; { cout << T->Data << ' '; s.push(T); T = T->Left; }原创 2020-12-30 22:40:41 · 199 阅读 · 0 评论 -
求关键活动算法
求关键活动算法(严蔚敏版,附详细注释)AOE网关键路径在AOE网中,一个顶点表示一个工程事件,而一条边表示一个活动。关键活动简单理解:当该弧的最早发生时间与最晚发生时间相同时,改活动(即为弧)即为关键活动。算法实现(伪代码)关于具体算法中用到的四个数组的意义与算法的实现流程,这里仅在代码中简单解释,具体理解请自行查阅资料。//变量说明:ve数组表示各事件最早发生时间,其求法为拓扑排序,正序所有发生时间中最大的。 //vl数组为各事件最晚发生时间,其求法为拓扑逆序,逆序事件中所有发生原创 2020-12-18 21:27:10 · 1723 阅读 · 1 评论 -
图的关节点(Tarjan算法)
数据结构复习–求图的关节点(Tarjan算法)文章目录重连通图的关节点(割点)深度优先生成树与回边Visited数组与Low数组Low数组求法重连通图的关节点(割点)关节点若连通图中某个顶点和其相关联的边被删去后,该连通图被分割成两个或两个以上的联通分量,则称此节点为关节点(割点)。重(双)连通图没有关节点的连通图称为双连通图。即从一个双连通图中删去任何一个顶点及其想关联的边,它仍为一个连通图。深度优先生成树与回边*深度优先生成树从图中任意顶点开始,执行深度优先搜索并在顶点被访问时给它们原创 2020-12-13 22:07:31 · 6262 阅读 · 4 评论