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

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

?? graph.h

?? 公園導圖算法
?? H
字號:
# ifndef Graph_h

# include <iostream.h>
# include <stdlib.h>

# define MAXNUM 1000
# define MAXSIZE 100

template <class Type> struct Edgenode  //節(jié)點的定義
{
	int head;
	int tail;
	Type cost;
};

template <class Type> class Minspantree
{
	public:
		Minspantree(int sz=MAXSIZE);
		int Insert(Edgenode <Type> &e);
        Edgenode <Type>& Getvalue(int i) { return edgevalue[i];}
		friend ostream & operator << (ostream &out,Minspantree<Type> &T);
		int Getsize() {return Maxsize;}
	protected:
		int Maxsize;
		int current;
		Edgenode <Type> *edgevalue;
};

template <class Type> class Graph
{
	public:
		Graph(int sz1=Maxsize,int sz2=Maxsize);
		int Insert(Edgenode <Type> &e);
        Type Getedge (int i,int j) {return Edge[i][j];}
        friend ostream& operator <<(ostream &out,Graph <Type> &a);
		~Graph();
		void Shortestpath(int,int);
		int Choose(int,int,int);
		void Prim (Minspantree <Type> &T,int n);
	protected:
		int edgenum,vertnum;   //邊數(shù)和點數(shù)
		Type Edge[MAXSIZE][MAXSIZE];
		int *path;             //路徑數(shù)組
		Type *dist;
		int *S;
};

//最小生成樹的函數(shù)實現(xiàn)
template <class Type> Minspantree<Type>::Minspantree(int sz)
{
    current=0;
    Maxsize=sz;
	edgevalue=new Edgenode <Type> [sz];
}

template <class Type> int Minspantree <Type>::Insert(Edgenode <Type> &item)
{
	if(current>Maxsize-1) {cout<<"最小生成樹已經(jīng)滿,不能插入"<<endl;return 0;}
	else{
        edgevalue[current].head=item.head;
        edgevalue[current].tail=item.tail;
        edgevalue[current].cost=item.cost;
	    current++;
	    return 1;
	}
}

template <class Type> ostream & operator << (ostream &out,Minspantree <Type> &T)  //數(shù)組的輸出
{
	out<<"景點"<<T.Getvalue(0).head+1<<" -> "<<"景點"<<T.Getvalue(0).tail+1;
	for(int i=1;i<=T.Getsize()-1;i++) out<<" -> "<<"景點"<<T.Getvalue(i).tail+1;       
	out<<endl;
	return out;
}

//圖有關成員函數(shù)的實現(xiàn)

template <class Type> Graph <Type>::Graph(int sz1,int sz2)
{
	if(sz1==0||sz2==0) {cout<<"頂點和邊數(shù)不能為零!!"<<endl;exit(1);}
	else if(sz1>MAXSIZE) {cout<<"頂點不能超過1000"<<endl;exit(1);}
	else{
		edgenum=sz2;vertnum=sz1;		
		for(int i=0;i<sz1;i++)
			for(int j=0;j<sz1;j++)
			{
				if(i==j) Edge[i][j]=0;
				else Edge[i][j]=MAXNUM;
			}
		dist=new Type[sz1];
	    path=new int[sz1];
	    S=new int[sz1];
	}
}

template <class Type> int Graph <Type>::Insert(Edgenode <Type> &e)
{
	Edge[e.head-1][e.tail-1]=e.cost;
	Edge[e.tail-1][e.head-1]=e.cost;
	return 1;
}

template <class Type> ostream& operator <<(ostream &out,Graph <Type> &a)  //輸出整個圖
{
	for(int i=0;i<vertnum;i++)
		for(int j=0;j<vertnum;j++)
		{
			out<<i+1<<" "<<j+1<<" "<<Getedge(i,j)<<"   "<<endl;
		}
}

template <class Type> Graph<Type>::~Graph()   //析構輔助數(shù)組
{
	delete []path;
	delete []dist;
	delete []S;
}

//迪克斯特拉算法求shortestpath
template <class Type> void Graph<Type> ::Shortestpath ( int n, int v)
{
        for ( int i=0; i<n; i++) 
		{				
        dist[i] = Edge[v][i];     //dist和path數(shù)組初始化
        S[i] = 0;					
        if ( i != v && dist[i] < MAXNUM ) 	path[i] = v;		
        else path[i] = -1;				        
		}  
       S[v] = 1;  dist[v] = 0;	//頂點v加入頂點集合       
       for ( i = 0; i < n-1; i++ ) //選擇當前不在集合S中具有最短路徑的頂點u
	   {			
           Type min = MAXNUM;  
		   int u = v;
           for ( int j = 0; j < n; j++ )		
	           if ( !S[j] && dist[j] < min ) 
			   { 
				   u = j;   
				   min = dist[j]; 
			   }
          S[u] = 1;	                //將頂點u加入集合S,表示它已經(jīng)在最短路徑上
          for ( int w = 0; w < n; w++ )    //修改 
	       if ( !S[w] && Edge[u][w] < MAXNUM &&dist[u] + Edge[u][w] < dist[w] ) 
		   {
	       dist[w] = dist[u] + Edge[u][w]; 
	       path[w] = u;
		   }
	   }

}

template <class Type> int Graph <Type>::Choose(int n,int v,int t)
{
	Shortestpath(n,v-1);
	if(t!=0)                                //輸出任意兩個景點的長度
	{
           cout<<" 景點"<<v<<" -> 景點"<<t<<" 的最短路徑 : ";
           Type length=dist[t-1];
           int k=1,p=t-1;
           while(path[p]!=-1)				 //檢測最短路徑上的點個數(shù) 
		   {
				k++;
				p=path[p];
		   }
		   int m=k;
		   int *a=new int[m];                //創(chuàng)建輔助數(shù)組存儲景點
		   p=t-1;
		   a[k-1]=t-1;
		   while(path[p]!=-1)
		   {
				k--;
				a[k-1]=path[p];
				p=path[p];
		   }
		   for( int j=0;j<m-1;j++)
				cout<<"景點"<<a[j]+1<<" -> ";
		   cout<<"景點"<<a[j]+1<<" , ";
		   cout<<"路徑全長為"<<length<<endl;
		   return 1;
	   }
	else if(t==0)
	{
			for(int j=1;j<=vertnum;j++)
			{
				if(j!=v) Choose(n,v,j);
			}
			return 1;
	}
	return 0;
}

template <class Type> void Graph <Type>::Prim (Minspantree <Type> &T,int n)  //prim算法求最小生成樹
{
    int NumVertices = n;	 //圖中頂點數(shù)
    Type *lowcost = new Type[NumVertices];			
    int *nearvex = new int[NumVertices];			
    for ( int i = 1; i < NumVertices; i++ ) 
	{
        lowcost[i] = Edge[0][i]; //頂點0到各邊的代價
        nearvex[i] = 0;	         //及最短帶權路徑
	}
	nearvex[0] = -1;      //頂點0加到生成樹頂點集合
    int count = 1;          //生成樹邊值數(shù)組存放指針
    Edgenode <Type> e;    //最小生成樹結點輔助單元
    for ( i = 1; i < NumVertices; i++ ) 
	{   //循環(huán)n-1次, 加入n-1條邊			
       Type min = MAXNUM;  int v = 0;		
       for ( int j = 0; j < NumVertices; j++ )		
           if ( nearvex[j] != -1 && lowcost[j] < min )
		   { v = j;  min = lowcost[j]; }  //求生成樹外頂點到生成樹內(nèi)頂點具有最小   //權值的邊, v是當前具最小權值的邊的位置       
       if ( v ) 
	   {   //v==0表示再也找不到要求的頂點了  //向生成樹邊值數(shù)組內(nèi)存放                  
           if(count==1)
		   {  
			   e.head=0;
		       count++;
		   }
		   else
               e.head = nearvex[v];
		   e.tail = v;  
           e.cost = lowcost[v];   
           T.Insert (e);           //選出的邊加入生成樹
           nearvex[v] = -1;    //作該邊已加入生成樹標記
           for ( j = 1; j < NumVertices; j++ )
			   if ( nearvex[j] != -1 &&Edge[v][j]<lowcost[j])     //j不在生成樹中    //需要修改
			   {
				   lowcost[j] = Edge[v][j];
                   nearvex[j] = v;
			   }
      }
   }
}

# endif





 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩福利视频网| 婷婷久久综合九色国产成人| ww亚洲ww在线观看国产| 2023国产精品自拍| 国产欧美一区视频| 一区二区视频免费在线观看| 亚洲一区日韩精品中文字幕| 亚洲成人av一区二区| 人禽交欧美网站| 国产在线精品免费av| 国产成人精品影视| 99视频精品在线| 欧美精品日韩一本| 久久久久免费观看| 亚洲色图.com| 日本欧美一区二区在线观看| 亚洲欧美日韩国产综合| 国产一区二区毛片| 国产亚洲一区二区三区| 国产一区视频在线看| 亚洲精品视频自拍| 福利电影一区二区三区| 国产欧美日韩精品在线| 99久久综合国产精品| 亚洲精品乱码久久久久| 在线观看精品一区| 日韩成人精品在线观看| 色综合天天天天做夜夜夜夜做| 91在线国产福利| 欧美性xxxxx极品少妇| 国产精品乱码妇女bbbb| 国产自产2019最新不卡| 日韩精品一区二区三区视频播放| 亚洲国产美国国产综合一区二区| 国产成人亚洲综合色影视| 日韩欧美你懂的| 蜜臀精品一区二区三区在线观看 | 国内精品国产成人国产三级粉色| 国产69精品久久777的优势| 精品国产人成亚洲区| 精彩视频一区二区三区| 日韩精品一区在线| 国内成人免费视频| 国产精品乱码久久久久久| 不卡欧美aaaaa| 午夜私人影院久久久久| 日韩一区二区视频| 国产精品一级二级三级| 中文字幕亚洲区| 欧美精品日韩一本| 国产精品456| 一区二区三区日韩在线观看| 欧美丰满一区二区免费视频 | 亚洲成a天堂v人片| 日本伊人精品一区二区三区观看方式| 国产一区欧美一区| 欧美性三三影院| 亚洲另类中文字| 92精品国产成人观看免费| 久久免费视频色| 色又黄又爽网站www久久| 亚洲免费在线看| 精品福利av导航| 91色在线porny| 国产一本一道久久香蕉| 亚洲精品水蜜桃| 久久夜色精品一区| 欧美日韩一级二级| 成人毛片视频在线观看| 日日骚欧美日韩| 亚洲天堂福利av| 久久久欧美精品sm网站| 欧美一区二区性放荡片| 色域天天综合网| 粉嫩在线一区二区三区视频| 麻豆高清免费国产一区| 亚洲第一成年网| 亚洲激情在线激情| 亚洲欧美色综合| 亚洲另类春色校园小说| 亚洲欧美偷拍另类a∨色屁股| 久久综合精品国产一区二区三区 | 一区二区三区四区亚洲| 正在播放亚洲一区| 欧美日韩国产影片| 99久久免费视频.com| 亚洲综合久久久| 中文字幕亚洲欧美在线不卡| 精品美女一区二区| 精品久久久久久综合日本欧美| 欧美色视频在线观看| 91视频xxxx| 成人免费视频一区二区| 国产福利不卡视频| 福利一区福利二区| 国产**成人网毛片九色 | 欧美一区二区三区思思人| 欧美日韩精品福利| 欧美性做爰猛烈叫床潮| 在线播放中文一区| 精品久久久久久无| 国产亚洲精久久久久久| 中文字幕精品三区| 一区二区三区影院| 国产日韩精品视频一区| 国产精品水嫩水嫩| 亚洲动漫第一页| 久久精品国产一区二区三区免费看| 国产在线精品一区二区夜色| 免费观看91视频大全| 成人一区二区三区中文字幕| 一本色道a无线码一区v| 制服丝袜在线91| 国产亚洲婷婷免费| 亚洲激情男女视频| 奇米四色…亚洲| 国产精品资源在线看| 欧美亚一区二区| 中文字幕亚洲在| 亚洲一区二区黄色| 国产成人h网站| 在线中文字幕不卡| 综合色中文字幕| 国产酒店精品激情| 欧美tk—视频vk| 亚瑟在线精品视频| 激情六月婷婷综合| 欧美日韩国产乱码电影| 久久久综合激的五月天| 日韩一区精品字幕| 日本丶国产丶欧美色综合| 久久久久久久久一| 乱一区二区av| 日韩欧美中文一区| 日韩福利电影在线观看| 欧美videossexotv100| 日韩高清在线一区| 欧美一级理论性理论a| 日本v片在线高清不卡在线观看| 欧美三级视频在线| 亚欧色一区w666天堂| 成人精品视频一区二区三区| 久久夜色精品一区| 粉嫩av一区二区三区| 国产欧美日韩不卡免费| 国产精品一区二区男女羞羞无遮挡| 欧美成人性战久久| 视频一区二区欧美| 懂色一区二区三区免费观看 | 国产精品素人一区二区| 亚洲日本青草视频在线怡红院| 精品久久久久久综合日本欧美| 99久久久久久| 成人午夜碰碰视频| 国产一区二区久久| 丰满白嫩尤物一区二区| 久久精品理论片| 久久精品国产亚洲a| 秋霞电影网一区二区| 亚洲成av人片一区二区三区 | 精彩视频一区二区三区| 亚洲六月丁香色婷婷综合久久| 69堂国产成人免费视频| 色就色 综合激情| 成人三级在线视频| 青青青伊人色综合久久| 樱花草国产18久久久久| 国产精品久久久久aaaa| 国产午夜亚洲精品不卡| 精品伦理精品一区| 欧美xxxxx牲另类人与| 欧美日本一区二区三区四区| 99久久99久久精品免费观看| 久久99精品久久久久| 亚洲日穴在线视频| 亚洲人成精品久久久久| 亚洲综合在线免费观看| 亚洲免费在线观看视频| 一区二区三区在线视频观看58| 亚洲欧洲精品一区二区三区| 欧美一区午夜视频在线观看| 欧美人妖巨大在线| 欧美日韩在线直播| 91网站最新网址| 欧美成人vr18sexvr| 亚洲自拍偷拍网站| 日韩av网站免费在线| 国产制服丝袜一区| 精品视频在线免费| 精品99久久久久久| 日日夜夜精品视频免费| 国产成人亚洲综合a∨婷婷图片 | 日本不卡在线视频| 久久精品国产精品亚洲综合| 蜜臀av国产精品久久久久| 成人国产电影网| 欧美不卡一二三| 一区二区三区美女视频| 精品在线视频一区| 91毛片在线观看|