Qt使用深度优先搜索求出图的最短路径(二)

求出从第一个城市到第五个城市的最短路径:

具体代码请看上一篇文章:Qt使用深度优先搜索和广度优先搜索遍历图
在这里插入图片描述

	int gShortestPath = 99999;//最短路径
	int gTarget = 5;//目标节点
	int _currentLen = 0;//当前长度
void Graph::shortestPathByDFS(GraphVertex vertex, int currentLen) {
	if (vertex.getID() == gTarget) {//找到目标
		gShortestPath = gShortestPath < currentLen ? gShortestPath : currentLen;
		return;
	}
	for (int i = 0; i < VERTEX_NUM; i++) {
		if (_vertex[vertex.getID()][i] > 0 && _book[i] == 0) {//当前有路径并且还没有走过
			_book[i] = 1;
			_graphVertex[i].setDrawBK(true);
			_update->updateMap();
			shortestPathByDFS(_graphVertex[i], currentLen + _vertex[vertex.getID()][i]);
			_book[i] = 0;
			_graphVertex[i].setDrawBK(false);
		}
	}
}
发布了380 篇原创文章 · 获赞 94 · 访问量 30万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览