基于Floyd的校园导航小程序
使用了邻接表和Floyd,将schoolmap.png的路径改为自己的图的路径即可用。
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
string mapName[37] = {"保卫处", "煤炭科技中心与结构实验中心", "16、17、18教", "15教", "14教", "11、12、13教",
"9、10教", "大学生创新创业与就业基地", "行政楼", "2教", "3教", "新馆入口", "旧馆入口",
"实验楼", "1教", "明德广场", "校门口", "滨河路入口", "3、4、5号学生公寓", "开水房", "配电室",
"学生超市", "1、2号学生公寓", "榴馨苑", "2号教师公寓", "洗浴中心", "骊绣苑", "综合楼",
"十字路口", "6、7号学生公寓", "篮球场", "10、11、12、13号学生公寓", "8、9号学生公寓",
"14、15、16号学生公寓", "游泳馆", "主田径场", "综合文体馆"
};
//最短值
int Distance[37][37] = {0}; //Distance[i][j] = m
//存储路径
int path[37][37] = {0};
//边表结点
struct arcNode {
//顶点对应的下标
int m_adjvex;
//权值
int m_weight;
//指向下一个邻接点
arcNode *m_next;
};
//顶点表结点
typedef struct VertexNode {
//顶点数据
string m_data;
//边表头指针
arcNode *m_firstedge;
} VertexNode, AdjList[100];
//集合
struct graphAdjList {
AdjList adjList;
//顶点数和边数
int vexnum, arcnum;
};
void initMap(graphAdjList &AMG) {
AMG.vexnum = 37;
AMG.arcnum = 51;
Distance[1][9] = 55;
Distance[1][2] = 35;
Distance[2][3] = 65;
Distance[2][8] = 110;
Distance[2][11] = 65;
Distance[3]

该程序使用Floyd算法和邻接表构建了一个校园导航系统,用户可以更改schoolmap.png中的路径来适应不同地图。程序初始化地图,创建边表,展示地图路径,并通过Floyd算法找到最短路径。用户可以选择查看整个地图路径或查找两点间的最优路径。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



