C++——《算法分析》实验肆——单源最短路径问题
实验目的:
1、理解分支限界法的剪枝搜索策略;
2、 掌握分支限界法的算法柜架;
3、 掌握分支限界法的算法步骤;
4、 通过应用范例学习动态规划算法的设计技巧与策略;
源程序:
#include <iostream>
#include<vector>
#include<queue>
using namespace std;
typedef struct ArcCell {int u;int info;ArcCell(int a, int b){u = a;info = b;}
}ArcCell, AdjMaxtrix[100][100];
typedef struct {int data;int length;
}VerType;
typedef struct {VerType vexs[100];vector<ArcCell>arcs[1001];int vexnum;int arcnum;
}Graph;
Graph G;
queue<int> q;
int main()
{int m, n, t;cout << "输入顶点个数和弧边个数:" << endl;cin >> G.vexnum >> G.arcnum;for (int i = 1; i <= G.vexnum; i++){G.vexs[i].data = i;G.vexs[i].length = 10000;}cout << "输入弧及权重:" << endl;for (int i = 1; i <= G.arcnum; i++){cin >> m >> n >> t;G.arcs[m].push_back({ n,t });}G.vexs[1].length = 0;q.push(G.vexs[1].data);while (!q.empty()){int t = q.front();for (int i = 0; i < G.arcs[t].size(); i++){int k = G.arcs[t][i].u;if (G.vexs[t].length + G.arcs[t][i].info <= G.vexs[k].length){G.vexs[k].length = G.vexs[t].length + G.arcs[t][i].info;q.push(G.vexs[k].data);}}q.pop();}for (int i = 1; i <= G.vexnum; i++) cout << G.vexs[i].data << "——" << G.vexs[i].length << endl;return 0;
}
实验结果:
C++——《算法分析》实验肆——单源最短路径问题相关推荐
- C++——《算法分析与设计》实验报告——单源最短路径问题
实验名称: 单源最短路径问题 实验地点: 实验目的: 1. 理解分支限界法的剪枝搜索策略: 2. 掌握分支限界法的算法柜架: 3. 掌握分支限界法的算法步骤: 4. 通过应用范例学习动态规划算 ...
- c语言单源最短路径问题实验报告,单源最短路径问题Dijkstra算法的c语言实现
求单源最短路径是图论中比较基本的问题,通常的Dijkstra算法是按阶段进行的,每个节点标有处理和未处理状态的标记,设立一个数组,每个数组中第i个元素为源节点到第i个节点的最短路径(当然,该数组的初值 ...
- c语言单元最短路径贪心算法,单源最短路径 贪心算法
<单源最短路径 贪心算法>由会员分享,可在线阅读,更多相关<单源最短路径 贪心算法(3页珍藏版)>请在人人文库网上搜索. 1.实验三 单源最短路径一.实验目的及要求掌握贪心算法 ...
- c语言单源最短路径问题实验报告,数据结构课程设计最短路径问题实验报告-20210320182652.docx-原创力文档...
IMB standardization office[IMB 5AB- IMBK 08- IMB 2C] IMB standardization office[IMB 5AB- IMBK 08- IM ...
- 单源路径分支界限java_java单源最短路径算法
. .. .. . 单源最短路径的 Dijkstra 算法: 问题描述: 给定一... 并 应用贪心法求解单源最短路径问题.环境要求对于环境没有特别要求.对于算法实现,可以自由选择 C, C++, J ...
- 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...
问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...
- 你必须会的--Dijkstra算法--单源最短路径问题
文章目录 一.算法原理 1.基本原理 2.如何保存最短路径? 二.算法实战一 1.测试 2.结果 二.算法实战2 Input Output Sample Input Sample Output 一.算 ...
- (单源最短路径)一文搞懂dijkstra算法
前言 大家好,我是bigsai,今天给大家讲讲Dijkstra算法,下次拿着这个算法找女神少绕路,有女朋友的可以试试行不行的通. 对于Dijkstra算法,很多人可能感觉熟悉而又陌生,可能大部分人比较 ...
- 数据结构与算法—单源最短路径dijkstra算法
介绍 对于dijkstra算法,很多人可能感觉熟悉而又陌生,可能大部分人比较了解bfs和dfs,而对dijkstra和floyd算法可能知道大概是图论中的某个算法,但是可能不清楚其中的作用和原理,又或 ...
最新文章
- 在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_map_module实录
- leetcode算法题--只有两个键的键盘
- 拥有属于你的“尬聊”机器人
- P1368-工艺【最小表示法】
- 【DS】线段树HDU-1166
- java udp 线程,Java中的UDP DatagramSocket线程的高CPU使用率
- 上传到服务器的图片访问的时候提示403 You don't have permission to access
- C++/ python 计算硬币正面朝上的概率
- 基于Python实现的DHT嗅探器
- 洛谷 P5056 【模板】插头dp
- Qualcomm MSM8937 dual DSI 笔记
- 计算机网络分层结构概述
- HTTP Live Streaming直播
- 转载好用的小工具 【who-lock-me】
- 小兮码 linux版本,【图片】单字利器:二笔顶功——小兮码【输入法吧】_百度贴吧...
- matlab等距偏置曲线,144 偏置曲线命令详解
- NPOI读取Word模板并保存
- 毕业设计 Stm32云平台的智能病房监控系统
- OpenCL Reduction操作
- Ryan's zone微信公众账号
热门文章
- 你值得掌握的 Git分支等 常用命令 (持续更新中)
- HTML中id、name、class 区别
- MOSS之:DataForm Web Part解析
- 实现 tomcat 热加载证书
- 图论算法(一)--最短路径的DFS/BFS解法(JAVA )
- 查找算法——折半查找(JAVA)
- linux下文件删除不了
- php filespl,PHP SPL--遍历目录
- 在电脑上显示未知发布者怎么办_电脑开机后显示器黑屏只有鼠标能动,怎么办呢?...
- fanuc roboguide_ROBOGUIDE软件:机器人产线输送带输送物料虚拟仿真操作