欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

分支限界法单源最短路径

  • 资源ID:150970500       资源大小:68.40KB        全文页数:9页
  • 资源格式: DOCX        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

分支限界法单源最短路径

#include <iostream>using namespace std;#define MAX 9999/定义无穷大/*Graph类,用以存放有关图的所有信息*/class Graphpublic:/param int初始节点编号/void ShorestPaths(int);void ShowDist();Graph();private:int n;/图的节点个数int *prev;/存放顶点的前驱节点int *c;/存放图的邻接矩阵int *dist;/存放源点到各个顶点的距离;/*节点*/class MinHeapNodefriend class Graph;public:int getI() return i;void setI(int ii)i = ii;int getLength()return length;void setLength(int len)length = len;private:int i;/顶点编号int length;/当前路长 ;/*最小堆*/class MinHeapfriend class Graph;public:MinHeap();MinHeap(int);void DeleteMin(MinHeapNode &);void Insert(MinHeapNode);bool OutOfBounds();private:int length;MinHeapNode *node;Graph:Graph()int wi = 0;int yi = 0;cout<<"请输入图的节点个数:;cin>>n;cout<<"请输入图的邻接矩阵:(无穷大请以9999代替)"<< endl;c = new int*n+1;dist = new intn+1;prev = new intn+1;/初始化邻接矩阵/for (wi = 0; wi <= n; wi+)cwi = new intn+1;if (wi = 0)for (yi = 0; yi <= n; yi+)cwiyi = 0;elsefor (yi = 0; yi <= n; yi+)if (yi = 0)cwiyi = 0;elsecin >> cwiyi;/初始化数组/for (wi = 0; wi <= n; wi+)distwi = MAX;prevwi = 0;void Graph:ShowDist()cout << "从源点到该节点的最短路径:"<< endl;int i = 0;int temp = 0;for (i = 1; i <= n; i+)cout << "dist" << i << " = " << disti << endl;cout << ”从源点到终点的最短路径长度为: << distn << endl;cout << "其路径为:;temp = n;while(temp != 0)if (prevtemp = 0)cout << (temp);elsecout << (temp) << " <- "temp = prevtemp;cout << endl;void Graph:ShorestPaths(int v)MinHeap H(n);/最小堆MinHeapNode E;/扩展节点E.i = v;E.length = 0;distv = 0;/搜索问题的解空间树while (true)int j = 0;for (j = 1; j <= n; j+)cout<<c<<E.i<<<<j<<=<<cE.ij<<endl;if (cE.ij != MAX) && (cE.ij != 0)/节点控制关系if (E.length + cE.ij < distj)distj = E.length + cE.ij;prevj = E.i;/加入活结点优先队列/若节点为叶子节点,则不加入活结点队列if (j != n)MinHeapNode N;N.i = j;N.length = distj;H.Insert(N);elseH.DeleteMin(E);if (H.OutOfBounds()break;cout<<”上一个扩展节点"<<E.i<<" "<<E.length<<endl;H.DeleteMin(E);cout<<"下一个扩展节点"<<E.i<<" "<<E.length<<endl;MinHeap:MinHeap()length = 10;node = new MinHeapNodelength+1;for (int i = 0; i <= length; i+)nodei.setI(0);nodei.setLength(0);MinHeap:MinHeap(int n)length = n;node = new MinHeapNodelength+1;for (int i = 0; i <= length; i+)nodei.setI(0);nodei.setLength(0);/*取下一个扩展结点,并删除此节点*算法实现其实是用下一个节点的信息替代现有节点的数据*首先在现有的节点中,找出length最短的节点*然后将此节点的数据替换原有的数据*/void MinHeap:DeleteMin(MinHeapNode &E)int i = 0;int j = 0;j = E.getI();/用来删除原来的扩展节点nodej.setI(0);/置零nodej.setLength(0);/置零int temp = MAX;/选择可扩展节点中length域最小的可扩展节点将所选择的扩展节点的数值替换原有的扩展节/点的值,最后在可扩展节点队列中删除原扩展节点,删除方式为:所有域置零/for (i = 1; i <= length; i+)if (nodei.getLength() < temp) && (nodei.getLength() != 0)E.setI(i);E.setLength(nodei.getLength();temp = nodei.getLength();/temp 中始终为最小值/*加入最小堆*此处添加按节点编号添加,即对应的节点编号添加时*对应队列中相应的编号,即节点5则添加到队列中5号*位置*/void MinHeap:Insert(MinHeapNode N)nodeN.getI().setI(N.getI();nodeN.getI().setLength(N.getLength();/*判断最小堆是否为空*/bool MinHeap:OutOfBounds()int i = 0;bool flag = true;for (i = 1; i <= length; i+)if (nodei.getI() != 0)flag = false;return flag;int main()Graph graph;graph.ShorestPaths(l);graph.ShowDist();return 0;亍点3 ?jcI3l-9999c3H2=9999c3H3=2r3H4=53H5=9999从源点到该节点的最短路径:istEU =蚓= 2ist3 = 7ist4 = 4dist5 = 4点到终点的最短路径长度为舛 其商径为:1 请技任意键继续

注意事项

本文(分支限界法单源最短路径)为本站会员(ba****u6)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!