基于Floyd的校园导航小程序

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

基于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]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值