亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 最短路徑問題.txt

?? 對一個運輸商來說要把貨運到收貨地點選擇最短的路線運輸是其實現(xiàn)最大利潤的要求
?? TXT
字號:
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
const int M=999999;     //定義M為無窮大
const int maxvertexnum=100;    //預定的最大結點數(shù)
struct vertextype      {  char name[10];  int key;  };    //定義頂點元素類型
typedef vertextype vexlist[maxvertexnum]; //定義vexlist為存儲結點信息的數(shù)組類型
typedef int adjmatrix[maxvertexnum][maxvertexnum];//定義adjmatrix為存儲鄰接距陣的數(shù)組類型
struct edgenode  {  int adjvex;int weight;edgenode *next;};  //定義鄰接表中的邊結點類型
typedef edgenode *adjlist[maxvertexnum];
//定義adjlist為存儲maxvertexnum個表頭指針的數(shù)組類型
int number, dist[maxvertexnum];
void createl(vexlist GV,adjmatrix GA)  //建立頂點數(shù)組GV,鄰接數(shù)組GA
{  int i,j,k,w,edge,direction;
   cout<<"      *有向圖用1表示,無向圖用0表示*  "<<endl;
   cout<<"     ================================"<<endl;
   cout<<"             請選擇:";
   cin>>direction;     cout<<"輸入結點個數(shù):";     cin>>number;
   cout<<"輸入各結點:"<<endl;
   for(i=0;i<number;i++)            //建立頂點數(shù)組GV
		 {  cin>>GV[i].key>>GV[i].name;  }
   for(j=0;j<number;j++)
		 {  cout<<"用"<<GV[j].key<<"表示"<<GV[j].name<<"   "<<endl; }
   cout<<endl;
   for(i=0;i<number;i++)   //初始化鄰接數(shù)組
		 {  for(j=0;j<number;j++)
			{  if(i==j)      GA[i][j]=0;  else  GA[i][j]=M;   }
		 }
   cout<<"輸入邊數(shù):";        //建立鄰接數(shù)組
   cin>>edge;     cout<<"輸入各條邊:"<<endl;
   for(k=0;k<edge;k++)
		 {  cin>>i>>j>>w;
	        if(direction==1)     GA[i][j]=w;   else   GA[i][j]=GA[j][i]=w;
		 }
   cout<<endl;    cout<<"輸出鄰接距陣:"<<endl;
   for(i=0;i<number;i++)
		 {  for(j=0;j<number;j++)
			 {  if(GA[i][j]==M)   cout<<setw(5)<<"∞";   
else  cout<<setw(5)<<GA[i][j];  
}
	        cout<<endl;
		 }
   cout<<endl;
}
void PATH(adjlist path,int m,int j);   //函數(shù)超前定義
void dijkstra(adjmatrix GA,int dist[],adjlist path,int i,int n)
//求圖GA中從頂點i到其余每個頂點間的最短距離和最短路徑它們分別被存
//于數(shù)組dist和path數(shù)組中
{  int j,k,w,m;
   int *s=new int[n];      //定義作為集合使用的動態(tài)數(shù)組s
   for(j=0;j<n;j++)        //分別給s,dist和path數(shù)組賦初值
		 {  if(j==i)   s[j]=1;   else    s[j]=0;
             dist[j]=GA[i][j];
             if(dist[j]<M&&j!=i)
			 {edgenode *p1=new edgenode;  edgenode *p2=new edgenode;
                p1->adjvex=i;  p2->adjvex=j;  p2->next=NULL;
                p1->next=p2;    path[j]=p1;
			}
           else    path[j]=NULL;
		}
for(k=1;k<=n-2;k++)  //共進行n-2次循環(huán),每次求出從源點i到終點m的最短路徑及長度
		{  w=M;m=i;        //求出第k個終點m
           for(j=0;j<n;j++)
           if(s[j]==0&&dist[j]<w)
			 {    w=dist[j];           m=j;   }
//若條件成立,則把頂點m并入集合s中,否則退出循環(huán),因為剩余的頂點,
//其最短路徑長度為M,無需再計算下去
          if(m!=i)   s[m]=1;   else   break;
          for(j=0;j<n;j++)//對s元素為0的對應dist和path中的元素做必要修改
          if(s[j]==0&&dist[m]+GA[m][j]<dist[j])
			{   dist[j]=dist[m]+GA[m][j];     PATH(path,m,j);
	//調用函數(shù),由到頂點m的最短路徑和頂點j構成到頂點j的目前最短路徑
			}
		}
}
void PATH(adjlist path,int m,int j) //由到頂點m的最短路徑和頂點j構成到頂點j的//目前最短路徑
{   edgenode *p,*q,*s;         p=path[j];    //把頂點j的當前最短路徑清除掉
    while(p!=NULL)
		{  path[j]=p->next;  delete p;  p=path[j];  }
    p=path[m];     //把到頂點m的最短路徑拷貝過來到頂點j的最短路徑上
    while(p!=NULL)
		{  q=new edgenode;  q->adjvex=p->adjvex;
            if(path[j]==NULL)   path[j]=q;
            else   s->next=q;   s=q;   p=p->next;
		}
//把頂點j加入到path[j]單鏈表的最后,形成新的目前最短路徑
    q=new edgenode;   q->adjvex=j;  q->next=NULL;   s->next=q;
}
void main()
{ vexlist GV;  adjmatrix GA;
 createl(GV,GA);
vertextype again,from,to;      adjlist path;   int chose=1;   edgenode *p;
 while(chose!=0)           //為了實現(xiàn)多次查找
{ cout<<"      ********求城市之間的最短路徑******* "<<endl;
    cout<<"       1、求一個城市到所有城市的最短路徑 "<<endl;
    cout<<"       2、求任意的兩個城市之間的最短路徑 "<<endl;
    cout<<"      =================================== "<<endl;
    cout<<"         請選擇:1 或 2,選擇 0 退出 :";
    cin>>chose;   cout<<endl;
    if(chose==1)    //求一個城市到所有城市的最短路徑
      {  cout<<"輸入源結點:";     cin/*>>again.key*/>>again.name;
         for(int num=0,node=0;node<number;node++)
	    if(strcmp(GV[node].name,again.name)==0)
	       {   again.key=GV[node].key; num++;   }
	    if(num)
            {  dijkstra(GA,dist,path,again.key,number);
               cout<<"查找結果:"<<endl;  cout<<endl;
               cout<<setw(32)<<"最短距離"<<setw(12)<<"最短路徑"<<endl; 
               for(int i=0;i<number;i++)
	             { cout<<setw(10)<<GV[again.key].name<<"到"<<setiosflags(ios::left)
		             <<setw(10)<<GV[i].name<<resetiosflags(ios::left);
	               if(dist[i]==M)      cout<<setw(10)<<"∞"<<"    ";
	               else              cout<<setw(10)<<dist[i]<<"    ";
	               p=path[i];
	              if(again.key==i)     cout<<"目標在本地";
	              else
	                {   if(p!=NULL)
	                    { cout<<GV[again.key].name;    p=p->next;
		                 while(p!=NULL)
		                    { cout<<"→"<<GV[p->adjvex].name;   p=p->next;   }
	                    }
                         else   cout<<"不能到達!";
	                }
			     cout<<endl;
	             }
               cout<<endl;
	        }
	     else   cout<<"沒有該查找信息"<<endl;
      }
   else if(chose==2)    //求任意的兩個城市之間的最短路徑
	 {  cout<<"輸入起點:"; 
         cin>>from.name;cout<<"輸入終點:";cin>>to.name;
         for(int num1=0,num2=0,node=0;node<number;node++)
           {   if(strcmp(GV[node].name,from.name)==0)
	            {   from.key=GV[node].key;    num1++;   }
               if(strcmp(GV[node].name,to.name)==0)
	            {   to.key=GV[node].key;    num2++;  }
}
int num=num1+num2;
if(num)
{  dijkstra(GA,dist,path,from.key,number);
	          cout<<"最短路徑為:";            p=path[to.key];
	          if(p!=NULL)
		        {  cout<<GV[from.key].name;      p=p->next;
		           while(p!=NULL)
		             {   cout<<"→"<<GV[p->adjvex].name;     p=p->next;   }
				  cout<<"      最短距離為:";
                     if(dist[to.key]==M)    cout<<"∞";
	                else                   cout<<dist[to.key]<<endl;
		        }
              else    cout<<"不能到達!"<<endl;
              cout<<endl;}else cout<<"沒有該查找信息"<<endl;
           }
       else    cout<<"結束求最短路徑,退出該程序,再見!"<<endl;
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区三区蜜桃视频| 成人免费av网站| 91视视频在线观看入口直接观看www| 精品久久久久久无| 成人aaaa免费全部观看| 亚洲综合网站在线观看| 欧美三级日韩在线| 国产乱人伦偷精品视频不卡| 国产欧美视频一区二区三区| fc2成人免费人成在线观看播放| 国产精品久久久久永久免费观看 | 欧美精品一级二级| 一本久久a久久免费精品不卡| 最新国产成人在线观看| 亚洲高清中文字幕| 成人久久视频在线观看| 日韩久久久精品| 国产精品全国免费观看高清| 亚洲乱码中文字幕| 色狠狠一区二区三区香蕉| 久久综合中文字幕| 亚洲精品久久久蜜桃| 欧美日韩免费视频| 亚洲色图制服诱惑| 欧美影院一区二区三区| 欧美sm美女调教| 成人97人人超碰人人99| 精品一二三四区| 一区二区三区产品免费精品久久75 | 国产一区不卡精品| 免费日本视频一区| 日韩精品一二区| 亚洲18女电影在线观看| 亚洲国产综合91精品麻豆| 国产精品视频一二三| 国产日韩欧美激情| 中文字幕不卡在线观看| 国产日本欧美一区二区| 久久久久国产免费免费| 久久亚洲一区二区三区明星换脸| 欧美日韩免费高清一区色橹橹| 欧美专区日韩专区| 欧美婷婷六月丁香综合色| 欧美人牲a欧美精品| 欧美一区二区三区在线观看视频| 5月丁香婷婷综合| 欧美性三三影院| 精品噜噜噜噜久久久久久久久试看 | 国产一区二区三区综合| 国产福利一区二区| 欧美视频日韩视频| 国产日韩欧美高清在线| 一区二区三区蜜桃| 美国av一区二区| 91丝袜国产在线播放| 欧美一卡二卡三卡| 国产精品久久久久一区二区三区共| 亚洲欧美日韩系列| 韩国v欧美v亚洲v日本v| 在线一区二区三区四区五区| 日韩三级免费观看| 日韩一区二区在线观看视频| 精品国产乱码久久久久久图片| 亚洲欧洲成人自拍| 国产精品香蕉一区二区三区| 日本精品裸体写真集在线观看| 欧美大肚乱孕交hd孕妇| 一区二区久久久| 成人黄色综合网站| 中文字幕第一页久久| 久久91精品久久久久久秒播| 欧美午夜精品免费| 亚洲综合一区二区精品导航| 一区二区国产盗摄色噜噜| 色屁屁一区二区| 一区二区三区日韩精品| 亚洲一区免费视频| 亚洲一区在线视频观看| 欧美a一区二区| 欧美aⅴ一区二区三区视频| 男女男精品视频| 欧美精品一区二区三| 国产欧美日韩综合精品一区二区| 欧美久久免费观看| 亚洲午夜一二三区视频| 色综合久久久网| 天堂蜜桃一区二区三区 | 中文字幕在线观看一区二区| 成人的网站免费观看| 亚洲综合在线观看视频| 在线观看av不卡| 国产一区日韩二区欧美三区| 久久精品免视看| 波多野结衣视频一区| 尤物av一区二区| 欧美一区二区福利在线| 国产成人av影院| 亚洲午夜久久久久| 欧美男男青年gay1069videost| 国产一区免费电影| 午夜国产精品一区| 日韩一区二区三区免费观看| 极品少妇xxxx精品少妇| 亚洲男人的天堂在线观看| 精品国产乱码久久久久久久久| 在线观看国产一区二区| 国产成人久久精品77777最新版本| 亚洲综合小说图片| 自拍偷拍欧美激情| 国产欧美一区二区在线| 欧美一区二区三区四区视频| gogogo免费视频观看亚洲一| 久久99国产精品成人| 美女在线视频一区| 日本在线不卡视频一二三区| 一级日本不卡的影视| 国产精品萝li| 中文字幕免费不卡| **网站欧美大片在线观看| 久久久亚洲高清| 国产精品美女视频| 国产精品免费看片| 亚洲视频香蕉人妖| 亚洲另类色综合网站| 亚洲在线观看免费视频| 日本三级亚洲精品| 国产自产v一区二区三区c| 国产精品亚洲第一 | www.欧美精品一二区| 成人免费看黄yyy456| 91色视频在线| 91精品国产麻豆国产自产在线| 欧美岛国在线观看| 亚洲品质自拍视频| 亚洲妇女屁股眼交7| 国产成人一区在线| 99精品欧美一区二区三区综合在线| 成人性生交大片免费看中文| 欧洲精品一区二区三区在线观看| 欧美一级二级在线观看| 国产片一区二区| 国产在线乱码一区二区三区| 亚洲美女免费视频| 高清不卡一区二区| 国产九色精品成人porny| 国产宾馆实践打屁股91| 国产精品综合视频| 亚洲精品综合在线| 一区二区高清免费观看影视大全 | 成人午夜av电影| 国产一区视频网站| 成人黄色综合网站| 欧美夫妻性生活| 国产精品久久毛片av大全日韩| 美女视频一区在线观看| 99久久99久久综合| 久久伊99综合婷婷久久伊| 亚洲欧美日韩一区| 风间由美一区二区三区在线观看 | 国产精品毛片大码女人| 日韩美女视频19| 成人h精品动漫一区二区三区| 日韩一区二区精品在线观看| 亚洲欧美综合网| 国产精品原创巨作av| 国产日韩欧美麻豆| 久久草av在线| 精品剧情v国产在线观看在线| 久久久精品影视| 成人h精品动漫一区二区三区| 精品成人一区二区三区| 日韩主播视频在线| 日韩欧美在线123| 免费一区二区视频| 精品乱人伦小说| 国产**成人网毛片九色 | 狠狠色丁香婷婷综合| 精品国内片67194| 国产成人啪免费观看软件| 最新热久久免费视频| av在线播放不卡| 亚洲区小说区图片区qvod| 成人动漫在线一区| 日韩av电影天堂| 国产亚洲欧洲一区高清在线观看| 国产福利视频一区二区三区| 亚洲网友自拍偷拍| 日韩精品在线网站| 国产乱码精品一区二区三区五月婷 | 欧美亚洲精品一区| 成人免费毛片a| 亚洲成a人片在线不卡一二三区 | 一本色道久久综合亚洲精品按摩| 久久久久综合网| 欧美日韩国产一级| 91浏览器打开| 国产成人免费在线观看不卡| 国内不卡的二区三区中文字幕 | 亚洲日本在线观看| 中文成人av在线|