(以下图为例子)采用邻接矩阵的方法定义图的数据结构,并实现图的深度优先周游算法。 1.首先先定义并实现图的边Edge类,Edge类中的成员变量有:from->起点 to->终点 weight->权值(权值初始化为0) Edge.h 1 class Edge 2 { 3 public: 4 int f ...
分类:
其他好文 时间:
2019-12-22 12:39:26
阅读次数:
130
第1章 和bobo老师一起,玩转图论算法欢迎大家来到我的新课程:《玩转图论算法》。在这个课程中,我们将一起完整学习图论领域的经典算法,培养大家的图论建模能力。通过这个课程的学习,你将能够真正地,玩转图论算法:)第2章 图的基本表示千里之行,驶于足下。解决任何有一个图论算法问题,首先需要用基本的数据结 ...
分类:
编程语言 时间:
2019-12-21 10:09:09
阅读次数:
97
首先构造trie图。 我们明确一点的是,给出trie图,那么所有点的转移方式都是唯一可以确定的。即使是没有这个字符,他也会指向根节点。 我们根据离散数学的知识可以知道。计算有向图的邻接矩阵,然后k次方,就能够计算出从某一个点到另一个点,有多少条长度为k的路径。 故,我们构造出来trie图,拿出该图的 ...
分类:
其他好文 时间:
2019-12-20 13:46:01
阅读次数:
107
接上文,研究了一下算法之后,发现大话数据结构的代码风格更适合与前文中邻接矩阵的定义相关联,所以硬着头皮把大话中的最小生成树用自己的话整理了一下,希望大家能够看懂。 一、最小生成树 1,问题 最小生成树要解决的是带权图 即 网 结构的问题,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值的 ...
分类:
编程语言 时间:
2019-12-18 14:37:54
阅读次数:
91
Prim算法: 采用贪婪算法,通过迭代逐步加入权重最小的边进行构造。 伪代码: 1,初始化U={u0},E为空集; //E是最小生成树的边集合,U是其顶点集合,选定构造最小生成树的出发点u0; 2,重复以下步骤直到U=V; 2.1 以顶点集U和顶点集V-U之间的所有边作为侯选边,从中寻找权值最小的边 ...
分类:
编程语言 时间:
2019-12-17 20:51:04
阅读次数:
107
Kruskal算法:使用并查集求最小生成树,引入parent数组 1 #include <iostream> 2 #include <vector> 3 #include <queue> 4 #include <string> 5 #include <climits> 6 7 using names ...
分类:
编程语言 时间:
2019-12-17 15:03:54
阅读次数:
80
上图: 上码: 1 #include <iostream> 2 #include <queue> 3 using namespace std; 4 const int MAXSIZE = 10; //最大顶点数 5 6 template<class T> 7 class MGraph 8 { 9 p ...
分类:
其他好文 时间:
2019-12-16 19:41:28
阅读次数:
158
源程序: #include <stdio.h> #include <stdlib.h> #define MAXSIZE 9 /* 存储空间初始分配量 */ const int vnum = 20; typedef struct gp { char vexs[vnum]; /* 顶点表 */ int ...
分类:
其他好文 时间:
2019-12-09 13:45:48
阅读次数:
130
课程:《程序设计与数据结构》 班级: 1823 姓名: 高宽让 学号:20182331 实验教师:王志强 实验日期:2019年11月11日 必修/选修: 必修 一、实验内容 (1) 初始化:根据屏幕提示(例如:输入1为无向图,输入2为有向图)初始化无向图和有向图(可用邻接矩阵,也可用邻接表),图需要 ...
分类:
其他好文 时间:
2019-12-08 22:51:06
阅读次数:
84
题目:传送门 题意: 给你m个病毒串,只由(A、G、T、C) 组成, 问你生成一个长度为 n 的 只由 A、C、T、G 构成的,不包含病毒串的序列的方案数。 解: 对 m 个病毒串,建 AC 自动机, 然后, 这个AC自动机就类似于一张有向图, 可以用邻接矩阵存这张有向图。 最多10个病毒串, 每个 ...
分类:
其他好文 时间:
2019-12-08 10:25:46
阅读次数:
100