首页 分支限界法单源最短路径

分支限界法单源最短路径

举报
开通vip

分支限界法单源最短路径分支限界法单源最短路径 分支限界法单源最短路径 #包含iostream > < 使用名称空间; #定义最大9999 / /定义无穷大 / * *图类,用以存放有关图的所有信息 * / 类图 { 公共: / / --------------------------- / /参数int初始节点编号 / / -------------------------- 无效shorestpaths(int); 无效showdist(); graph(); 私人: int n;//图的节点个数 ...

分支限界法单源最短路径
分支限界法单源最短路径 分支限界法单源最短路径 #包含iostream > < 使用名称空间; #定义最大9999 / /定义无穷大 / * *图类,用以存放有关图的所有信息 * / 类图 { 公共: / / --------------------------- / /参数int初始节点编号 / / -------------------------- 无效shorestpaths(int); 无效showdist(); graph(); 私人: int n;//图的节点个数 int * / /存放顶点的前驱节点沪指; int * C;/ /存放图的邻接矩阵 int *区;/ /存放源点到各个顶点的距离 }; / * *节点 * / 类minheapnode { 朋友图; 公共: int返回我geti() {;} 无效的SETI(int II) { I = II; } getlength() { int返回长度;} 无效的 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 长度(len) { 长度=透镜; } 私人: int i;//顶点编号 int长度;/ /当前路长 }; / * *最小堆 * / 类minheap { 朋友图; 公共: minheap(); minheap(int); DeleteMin(minheapnode &)无效; 插入(minheapnode); 布尔outofbounds(); 私人: int的长度; minheapnode *结; }; 图::graph() { int = 0; int = 0; cout <<“请输入图的节点个数:”; CIN; cout <<“请输入图的邻接矩阵:(无穷大请以9999代替)“<< endl; c =新int * n + 1 ]; 距离=新国际[ n + 1 ]; 沪指=新国际[ n + 1 ]; / / ------------------------------ / /初始化邻接矩阵 / / ------------------------------ 对于(WI = 0;WI = n;WI + +) { c =新的int [ n + 1 ]; 如果(WI = 0) { 因为(易= 0;易; { [易] = 0; } } 其他的 { 因为(易= 0;易; { 如果(= = 0) { [易] = 0; } 其他的 { [易]; } } } } / / ---------------------------------- / /初始化数组 / / ---------------------------------- 对于(WI = 0;WI = n;WI + +) { [取消] =最大距离; 沪指[无线] = 0; } } 图:showdist()无效: { cout <<“从源点到该节点的最短路径:“<< endl; int = i 0; int = 0; 对于(i = 1;i = n;i + +) { cout <<“dist [“<<我<<”] =“<<区[我] << endl; } cout <<“从源点到终点的最短路径长度为:“<< dist [N] << endl; cout <<“其路径为:”; 温度= n; 而(临时)~= 0) { 如果(沪指[温度] = = 0) { cout <<(临时); } 其他的 { cout <<(临时)<<“<”; } 温度=沪指[温度]; } cout << endl; } 图:ShorestPaths:无效(int V) { minheap h(n);/ /最小堆 minheapnode E;/ /扩展节点 E. = V; e.length = 0; 距离[五] = 0; / /搜索问题的解空间树 虽然(真实) { int = 0; 对于(j,1;j,n;j + +) { cout <<“C [“<<即<<”] [“<< J <<”] =“<< C [即] [ J ] << endl; 如果((C [即] [ J ]~= max)和(C [即] [ J ]~= 0) { / /节点控制关系 如果(e.length + C [即] [ J ] <区[ J ]) { 距离[ J ] = e.length + C [即] [ J ]; 沪指[ J ] = E.; / /加入活结点优先队列 / /若节点为叶子节点,则不加入活结点队列 如果(j)~= n) { minheapnode n; n.i = J; n.length =分布[J].; H.Insert(N); } } 其他的 { H.DeleteMin(E); } } } 如果(H. outofbounds()) { 打破; } cout <<“上一个扩展节点”<<即<<”<< e.length << endl; H.DeleteMin(E); cout <<“下一个扩展节点”<<即<<”<< e.length << endl; } } MinHeap::minheap() { 长度= 10; 节点=新minheapnode [长度+ 1 ]; 对于(int = i 0;i =长度;i + +) { 结[我]的SETI(0); 结[我]规定长度(0); } } MinHeap::MinHeap(int n) { 长度= n; 节点=新minheapnode [长度+ 1 ]; 对于(int = i 0;i =长度;i + +) { 结[我]的SETI(0); 结[我]规定长度(0); } } / * *取下一个扩展结点,并删除此节点 *算法实现其实是用下一个节点的信息替代现有节点的数据 *首先在现有的节点中,找出长度最短的节点 *然后将此节点的数据替换原有的数据 * / 无效minheap::DeleteMin(minheapnode & E) { int = i 0; int = 0; J = E /用来删除原来的扩展节点geti(); 结[J]。SETI(0);//置零 结[J]。规定长度(0);//置零 int =最大值; / / ------------------------------------- / /选择可扩展节点中长度域最小的可扩展节点 / /将所选择的扩展节点的数值替换原有的扩展节 / /点的值,最后在可扩展节点队列中删除原扩展 / /节点,删除方式为:所有域置零 / / ------------------------------------- 对于(i = 1;i =长度;i +) { 如果((结[我]。getlength() <温度)和(节点getlength() [我]~ = 0) { E.setI(我); E.setLength(结[我]。getlength()); 温度=结[我]。getlength();/ /温度中始终为最小值 } } } / * *加入最小堆 *此处添加按节点编号添加,即对应的节点编号添加时 *对应队列中相应的编号,即节点5则添加到队列中5号 *位置 * / 无效minheap::插入(minheapnode N) { [例句]节点geti() SETI(N. geti()); [例句]节点geti()规定长度(N getlength()); } / * *判断最小堆是否为空 * / 布尔minheap::outofbounds() { int = i 0; 布尔标志为真; 对于(i = 1;i =长度;i +) { 如果(节点geti() [我]~= 0) { 标志=假; } } 返回标志; } 国际main() { 图; 图shorestpaths(1); showdist()图; 返回0; } / * 输入节点数为5 输入邻接矩阵为:{ 0, 2,9999,1,4 9999,0,5, 2, 9999 99999999 ,2,5, 9999 999999999999 ,0,2 9999999999999999 ,0 } * /
本文档为【分支限界法单源最短路径】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_751406
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:12
分类:生活休闲
上传时间:2017-12-11
浏览量:52