算法分析和具体步骤解说直接写在代码注释上了 TvT 没时间了等下还要去洗衣服 就先不赘述了 有不明白的欢迎留言交流!(估计是没人看的了) 直接上代码: #include<stdio.h> #include<queue> #include<iostream> using namespace std; typedef struct{ ];//顶点表 ][]; int vexnum,arcnum; }MGraph; ]; void printGraph(MGraph &…
1 /** 2 * C: Dijkstra算法获取最短路径(邻接矩阵) 3 * 6 */ 7 8 #include <stdio.h> 9 #include <stdlib.h> 10 #include <malloc.h> 11 #include <string.h> 12 13 #define MAX 100 // 矩阵最大容量 14 #define INF (~(0x1<<31)) // 最大值(即0X7FFFFFFF) 15 #defin…
题解:图的深度遍历就是顺着一个最初的结点开始,把与它相邻的结点都找到,也就是一直往下搜索直到尽头,然后在顺次找其他的结点. #include <bits/stdc++.h> using namespace std; int gra[200][200]; //储存图的大小 int vis[200]; // 标记数组 void dfs(int x,int k) // 有k个点,x代表目前搜到了那个点. { int i; for(i = 0; i < k; i ++) { if(!vis[i]…
#include <iostream> #include <stdio.h> #include <cstdlib> #include <cstring> #include <string> #include <queue> using namespace std; typedef struct MGraph{ string vexs[10];//顶点向量 int arcs[10][10];//邻接矩阵 int vexnum, arcn…
题目:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2107&cid=1186 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<iostream> #include<queue> using namespace std; ][],vis[],a[]; int n,m,k,j; void dfs(int x…
//============================================================================ // Name : MatrixUDG.cpp // Author : fffff // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //=============================…
6-1 邻接矩阵存储图的深度优先遍历(20 分) 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) ); 其中MGraph是邻接矩阵存储的图,定义如下: typedef struct GNode *PtrToGNode; struct GNode{ int Nv; /* 顶点数 */ int Ne; /* 边数 */ WeightType G[MaxVertexNum][MaxVe…
广度优先遍历 广度优先遍历是非经常见和普遍的一种图的遍历方法了,除了BFS还有DFS也就是深度优先遍历方法.我在我下一篇博客里面会写. 遍历过程 相信每一个看这篇博客的人,都能看懂邻接链表存储图. 不懂的人.请先学下图的存储方法.在我的之前博客里. 传送门:图表示方法 然后我们如果有一个图例如以下: 节点1->3->NULL 节点2->NULL 节点3->2->4->NULL 节点4->1->2->NULL 这样我们已经知道这是一个什么图了. 如果我们…
/* '邻接矩阵' 实现无向图的创建.深度优先遍历*/ #include <stdio.h> #include <stdlib.h> #define MaxVex 100 //最多顶点个数 #define INFINITY 32768 //表示极大值,即 ∞ #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 typedef char VertexType; //假设顶点数据类型为字符类型 typedef int…
一.基本思想 1)从图中的某个顶点V出发访问并记录: 2)依次访问V的所有邻接顶点: 3)分别从这些邻接点出发,依次访问它们的未被访问过的邻接点,直到图中所有已被访问过的顶点的邻接点都被访问到. 4)重复第3步,直到图中所有顶点都被访问完为止.   二.图的存储结构…