大话数据结构之图-邻接矩阵BFS(C++)

el/2024/4/12 15:30:44

大话数据结构

Unit6 图

1. 邻接矩阵的构建和广度遍历

代码

//无向表权值为一#include <iostream>
#include <algorithm>
#include <queue>
typedef char VertexType;
typedef int EdgeType;
#define MAXVEX 100
#define INFINITY 65535
using namespace std;
int visited[100];typedef struct {VertexType vexs[MAXVEX]; //定点表EdgeType arc[MAXVEX][MAXVEX];   //邻接矩阵int numVertexes, numEdges; //图中当前的顶点和边数
}MGraph;void CreatMgraph(MGraph* G) {int i, j, k, w;cout << "输入顶点数和边数:" << endl;cin >> G->numVertexes >> G->numEdges;//cout << G->numVertexes << G->numEdges;for (i = 0;i < G->numVertexes;i++) {cout << "请输入顶点名:" << endl;cin >> G->vexs[i];}for (i = 0;i < G->numVertexes;i++) {for (j = 0;j < G->numVertexes;j++) {G->arc[i][j] = INFINITY;}}for (k = 0;k < G->numEdges;k++) {cout << "输入边(vi,vj)上的下标i,下标j和权w:" << endl;cin >> i >> j >> w;G->arc[i][j] = w;G->arc[j][i] = G->arc[i][j];}
}//邻接表广度优先遍历算法
void BFSTraverse(MGraph G) {int i, j;queue<char> Q;for (i = 0;i < G.numVertexes;i++) {visited[i] = false;}//初始化队列//InitQueue(&Q);for (i = 0;i < G.numVertexes;i++) {if (!visited[i]) {visited[i] = true;cout << G.vexs[i];//入队列操作Q.push(i);while (!Q.empty()) {//出队列Q.pop();for (j = 0;j < G.numVertexes;j++) {if (G.arc[i][j] == 1 && !visited[j]) {visited[j] = true;cout << G.vexs[j];//入队列Q.push(j);}}}}}
}int main() {MGraph* grap = (MGraph*)malloc(sizeof(MGraph));CreatMgraph(grap);BFSTraverse(*grap);free(grap);return 0;
}

运行结果

在这里插入图片描述
在这里插入图片描述


http://www.ngui.cc/el/3458400.html

相关文章

大话数据结构之图-邻接表BFS(C++)

大话数据结构 Unit6 图 2.邻接表的构建和广度遍历 代码 #include <iostream> #include <queue> #include <algorithm> typedef char VertexType; typedef int EdgeType; #define MAXVEX 100 #define INFINITY 65535 using namespace std; int visited[10…

大话数据结构之图-邻接矩阵最小生成树Prim(C++)

大话数据结构 Unit6 图 关于邻接矩阵的最小生成树PRIM算法 代码 #include <iostream> typedef char VertexType; typedef int EdgeType; #define MAXVEX 100 #define INFINITY 65535 using namespace std; int visited[100];//构建顶点表 typedef struct {VertexType…

大话数据结构之图-邻接矩阵最小生成树Kruskal算法(C++)

大话数据结构 Unit6 图 邻接矩阵的最小生成树Kruskal算法 代码 #include <iostream> typedef char VertexType; typedef int EdgeType; #define MAXVEX 100 #define MAXEDGE 10 #define INFINITY 65535 using namespace std; int visited[100];//构建顶点表 typedef …

大话数据结构之图-邻接矩阵最短路径Dijkstra(C++)

大话数据结构 Unit6 图 邻接矩阵的最短路径Dijkstra算法 代码 #include <iostream> typedef char VertexType; typedef int EdgeType; #define MAXVEX 100 #define INFINITY 65535 using namespace std; int visited[100]; #define MAXVEX 9 #define INFINITY 65535 …

大话数据结构之图-邻接矩阵最短路径Floyd(C++)

大话数据结构 Unit6 图 邻接矩阵的最短路径Floyd算法 代码 #include <iostream> typedef char VertexType; typedef int EdgeType; #define MAXVEX 10 #define INFINITY 65535 using namespace std; int visited[100]; typedef int Pathmatirx[MAXVEX][MAXVEX]; type…

信号的时域特征分析matlab程序

%信号的时域特征分析 Nlength(x); tlinspace(0,1,8192); %时域图 figure;plot(t,x);xlabel(‘Time’);ylabel(‘Amplitude’);title(‘时域图’) %信号的平均值 Xmeansum(x)/N %信号的有效值 Xrmssqrt(sum(x.^2)/N) %信号的方根幅值 Xr(sum(abs(x))/N)^2 %信号的绝对平均幅值 a…

4阶经典龙格库塔格式

%用途&#xff1a;4阶经典龙格库塔格式解常微分方程组y’f(x,y),y(x0)y0 %格式&#xff1a;[x,y]marunge4s(dyfun,xspan,y0,h) %dyfun为向量函数f(x,y),xspan为求解区间[x0,xn], %init为初值向量&#xff0c;N为步数&#xff0c;x返回节点&#xff0c;y返回数值解向量 function…

什么是格式良好的XML文件

格式良好的XML是遵循所有“XML文档规则”的XML文档&#xff0c;如下所列。这些规则规定了标记如何置于内容周围&#xff0c;如何按层次嵌套元素&#xff0c;如何为属性加标点以及怎样的元素名称是可接受的。XML文档规则创建XML文档时&#xff0c;必须遵循一些基本的指导原则&am…

关于maven下jsp页面无法使用EL表达式问题

问题&#xff1a;maven环境下搭建项目jsp页面无法使用EL表达式原因&#xff1a;web.xml版本过于老旧解决方案&#xff1a; 将web.xml里面的代码替换成&#xff1a; <?xml version"1.0" encoding"UTF-8"?><web-app xmlns"http://java.sun.c…

maven环境下无法使用C标签库

原因&#xff1a;缺少依赖 解决方案&#xff1a;首先去http://mvnrepository.com/官网分别搜索jstl和standard将椭圆形区域的代码添加到maven的pom.xml即可同上问题解决