欢迎来到天天文库
浏览记录
ID:38494051
大小:48.00 KB
页数:8页
时间:2019-06-13
《旅行售货程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、voidTraveler(){ inti,j; inttemp_x[MAX_CITY_NUMBER]; Node*pNode=NULL; intminiSum; //所有结点最小出边的费用和 intminiOut[MAX_CITY_NUMBER]; //保存每个结点的最小出边的索引 MiniHeap*heap=newMiniHeap; //分配
2、堆 InitMiniHeap(heap); //初始化堆 miniSum=0; for(i=0;i0&&City_G
3、raph[i][j]4、niSum+=miniOut[i]; } for(i=0;ilcost=0; 5、//当前结点的优先权为0也就是最优 pNode->cc=0; //当前费用为0(还没有开始旅行) pNode->rcost=miniSum; //剩余所有结点的最小出边费用和就是初始化的miniSum pNode->s=0; //层次为0 pNode->pNext=NULL; for(intk=0;kx[k]=Bes6、t_Cost_Path[k]; //第一个结点所保存的路径也就是初始化的路径 } put(heap,*pNode); //入堆 while(pNode!=NULL&&(pNode->s)7、Node->x[k]; //将最优路径置换为当前结点本身所保存的 } /* ** pNode结点保存的路径中的含有这条路径上所有结点的索引 ** x路径中保存的这一层结点的编号就是x[City_Size-2] ** 下一层结点的编号就是x[City_Size-1] */ if((pNode->s)==City_Size-2){//是叶子的父亲 intedge1=City_Graph[(pNode->x)[City_Size-2]][(8、pNode->x)[City_Size-1]]; intedge2=City_Graph[(pNode->x)[City_Size-1]][(pNode->x)[0]]; if(edge1>=0&&edge2>=0&& (pNode->cc+edge1+edge2)
4、niSum+=miniOut[i]; } for(i=0;ilcost=0;
5、//当前结点的优先权为0也就是最优 pNode->cc=0; //当前费用为0(还没有开始旅行) pNode->rcost=miniSum; //剩余所有结点的最小出边费用和就是初始化的miniSum pNode->s=0; //层次为0 pNode->pNext=NULL; for(intk=0;kx[k]=Bes
6、t_Cost_Path[k]; //第一个结点所保存的路径也就是初始化的路径 } put(heap,*pNode); //入堆 while(pNode!=NULL&&(pNode->s)7、Node->x[k]; //将最优路径置换为当前结点本身所保存的 } /* ** pNode结点保存的路径中的含有这条路径上所有结点的索引 ** x路径中保存的这一层结点的编号就是x[City_Size-2] ** 下一层结点的编号就是x[City_Size-1] */ if((pNode->s)==City_Size-2){//是叶子的父亲 intedge1=City_Graph[(pNode->x)[City_Size-2]][(8、pNode->x)[City_Size-1]]; intedge2=City_Graph[(pNode->x)[City_Size-1]][(pNode->x)[0]]; if(edge1>=0&&edge2>=0&& (pNode->cc+edge1+edge2)
7、Node->x[k]; //将最优路径置换为当前结点本身所保存的 } /* ** pNode结点保存的路径中的含有这条路径上所有结点的索引 ** x路径中保存的这一层结点的编号就是x[City_Size-2] ** 下一层结点的编号就是x[City_Size-1] */ if((pNode->s)==City_Size-2){//是叶子的父亲 intedge1=City_Graph[(pNode->x)[City_Size-2]][(
8、pNode->x)[City_Size-1]]; intedge2=City_Graph[(pNode->x)[City_Size-1]][(pNode->x)[0]]; if(edge1>=0&&edge2>=0&& (pNode->cc+edge1+edge2)
此文档下载收益归作者所有