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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? graphm.h

?? 圖的基類以及最短路徑算法
?? H
字號:
#include "Graph.h" 
#define N 7 // 定義圖的頂點數(shù)


// 圖的相鄰矩陣表示法
class Graphm:public Graph  {
private:
	int **matrix;				//指向相鄰矩陣的指針
public:
	void Graphm::IniGraphm(Graphm *Graphm, int A[N][N]); // 初始化
	void DFS(Graph &G, int v);			// 深度優(yōu)先搜索  
	void BFS(Graph &G, int v);			// 廣度優(yōu)先搜索
	void Visit(Graph &G, int v);		// 訪問
	
public:
	Graphm(int numVert):Graph(numVert)  {//構(gòu)造函數(shù)
		int i, j;			//i, j作為for循環(huán)中的計數(shù)器
		matrix = (int **)new int*[numVertex]; /*申請matrix數(shù)組,該數(shù)組有numVertex個元素,每個元素是整型指針類型*/
		
		for (i = 0; i < numVertex; i ++)		/*matrix數(shù)組的每個元素,都指向一個具有numVertex個元素的數(shù)組*/
			matrix[i] = new int[numVertex];  

		for (i = 0; i < numVertex; i++)       /*相鄰矩陣的所有元素都初始化為0,如果矩陣元素matrix[i][j]不為0,則表明頂點i與頂點j之間有一條邊,邊的權(quán)即為matrix[i][j]的值*/
			for (j = 0; j < numVertex; j ++)
				matrix[i][j] = 0;
	}

	~Graphm() {							//析構(gòu)函數(shù)
		for (int i = 0; i < numVertex; i ++)
			delete [] matrix[i];			//釋放每個matrix[i]申請的空間
		delete [] matrix;				//釋放matrix指針指向的空間
	}

	Edge FirstEdge(int oneVertex)  {	//返回頂點oneVertex的第一條邊
		Edge myEdge;						//邊myEdge將作為函數(shù)的返回值
		myEdge.from = oneVertex;			//將頂點oneVertex作為邊myEdge的始點
		//  myEdge.to = -1; 
		for (int i = 0; i < numVertex; i ++)   {/* 下面尋找第一個使得matrix[oneVertex][i]
												不為0的i值,那么邊(oneVertex,i)或者
												弧<oneVertex,i>即為頂點oneVertex
												的第一條邊,將頂點i作為邊myEdge的終點邊myEdge
			                                    的權(quán)為矩陣元素matrix[oneVertex][i]的值*/
			if (matrix[oneVertex][i] != 0)  {									
				myEdge.to = i;
				myEdge.weight = matrix[oneVertex][i];
				break;
			}
		}
		return myEdge;/*如果找到了頂點oneVertex的第一條邊,則返回的myEdge確實是一條邊;
		              如果沒有找到頂點oneVertex的第一條邊,則myEdge的成員變量to為-1,
		              根據(jù)IsEdge函數(shù)判斷可知myEdge不是一條邊*/
	}

	Edge NextEdge(Edge preEdge)  { //返回與邊PreEdge有相同關(guān)聯(lián)頂點的下一條邊
		Edge myEdge;
		myEdge.from=preEdge.from; /*將邊myEdge的始點置為與上一條邊preEdge的始點相同*/
		if(preEdge.to<numVertex)  {
			//如果preEdge.to+1>=numVertex,那么就不存在下一條邊了
			for(int i=preEdge.to+1;i<numVertex;i++)  {
				/*尋找下一個使得//matrix[preEdge.from][i]不為0的i值,那么
				(preEdge.from,i)或者<preEdge.from,i>即為頂點preEdge.from的下一條邊*/
				if(matrix[preEdge.from][i]!=0)  {
					myEdge.to=i;
					myEdge.weight=matrix[preEdge.from][i];
					break;
				}
			}
		}
		return myEdge; /*如果找到了頂點preEdge.from的下一條邊,則返回的myEdge確實是一條邊;
					   如果沒有找到頂點preEdge.from的下一條邊,則myEdge的成員變量to為-1,
						根據(jù)IsEdge函數(shù)判斷可知myEdge不是一條邊*/
	}
	
	void setEdge(int from, int to, int weight)  {	//為圖設(shè)定一條邊
		if (matrix[from][to] <= 0) {  /*如果matrix[from][to]<=0,則邊(from,to) 或者<from,to>
			                       將是新增的一條邊,否則該邊已經(jīng)存在(現(xiàn)在只是對該邊進行修改)*/
			numEdge ++;
			Indegree[to] ++;
		}
		matrix[from][to] = weight;
	}
	
	void delEdge(int from,int to)  {     //刪除圖的一條邊
		if(matrix[from][to]>0)  { /*如果matrix[from][to]>0,則邊(from,to)或者<from,to>確實存在,
			                      否則該邊實際上并不存在(從而不必對圖的邊數(shù)和頂點to的入度進行修改)*/
			numEdge--;
			Indegree[to]--;
		}
		matrix[from][to]=0;		     
	}
};

// 函數(shù)功能:初始化圖
void Graphm::IniGraphm(Graphm *Graphm, int A[N][N])  {
	for (int i = 0; i < N; i ++)  	{
		for (int j = 0; j < N; j ++)  {
			if (A[i][j] > 0)
				Graphm->setEdge(i, j, A[i][j]);
		}
	}
}

//函數(shù)功能:深度優(yōu)先搜索算法實現(xiàn)
void Graphm::DFS(Graph& G, int v)  {    //深度優(yōu)先搜索算法實現(xiàn)
    G.Mark[v] = VISITED;       //訪問頂點V,并標(biāo)記其標(biāo)志位
    Visit(G,v);	
    //訪問V鄰接到的未被訪問過的頂點,并遞歸地按照深度優(yōu)先的方式進行周游
    for(Edge e=G.FirstEdge(v);G.IsEdge(e);e=G.NextEdge(e))
        if(G.Mark[G.ToVertex(e)]== UNVISITED)
			DFS(G, G.ToVertex(e));
}


// 函數(shù)功能:廣度優(yōu)先搜索
void Graphm::BFS(Graph& G, int v)  {           // 廣度優(yōu)先搜索算法的實現(xiàn)
    using std::queue;
	queue<int> Q;                    // 初始化廣度優(yōu)先周游要用到的隊列
	Visit(G,v);                       // 問頂點v,并標(biāo)記其標(biāo)志位
    G.Mark[v] = VISITED;
    Q.push(v);                       // v入隊
	while (!Q.empty())  {              // 如果隊列仍然有元素
		int u = Q.front ();              // 隊列頂部元素
		Q.pop();                     // 隊列頂部元素出隊
       		// 該頂點鄰接到的每一個未訪問頂點都入隊
		for (Edge e = G.FirstEdge(u);G.IsEdge(e);e = G.NextEdge(e))
		if (G.Mark[G.ToVertex(e)] == UNVISITED)  {
		        Visit(G, G.ToVertex(e));	
			G.Mark[G.ToVertex(e)] = VISITED;
		    	Q.push(G.ToVertex(e));  // 入隊
		    }
	}
}

// 函數(shù)功能:顯示頂點
void Graphm::Visit(Graph &G, int v) {
	cout << 'V' << v <<" ";
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91美女片黄在线| 亚洲欧美国产三级| 99久久久久久| 成人激情电影免费在线观看| 国产一区二区在线影院| 激情欧美一区二区三区在线观看| 美女在线视频一区| 蜜臀久久久久久久| 久久99久久久久| 日韩高清一区二区| 麻豆久久一区二区| 欧美性视频一区二区三区| 欧美日韩不卡一区| 久久午夜老司机| 国产精品视频九色porn| 一区二区三区美女视频| 亚洲成人激情综合网| 另类人妖一区二区av| 欧美日韩日本视频| 久久久综合视频| 亚洲男人的天堂在线aⅴ视频| 国产一区福利在线| 日韩欧美一区中文| 亚洲欧洲综合另类| 成人动漫一区二区| 日本一区二区视频在线| 亚洲国产欧美在线| 国产99精品在线观看| 欧美午夜精品免费| 亚洲午夜在线视频| 欧美色综合久久| 天天色图综合网| 成人爱爱电影网址| 国产精品成人一区二区艾草| 丝袜美腿高跟呻吟高潮一区| 成人av高清在线| 国产精品毛片久久久久久久| 国产成人精品在线看| 欧美精品v国产精品v日韩精品| 国产欧美日韩另类一区| 国产精品18久久久久久久网站| 91国在线观看| 国产精品妹子av| 波多野结衣亚洲一区| 欧美国产97人人爽人人喊| 亚洲最大成人综合| 欧美美女直播网站| 日韩电影一区二区三区四区| 欧美成人一级视频| 午夜欧美在线一二页| 91精品国产综合久久精品麻豆| 亚洲欧美另类久久久精品2019| 91成人免费网站| 日本欧美韩国一区三区| 亚洲精品一区二区三区精华液| 日韩综合在线视频| 精品国产乱码久久久久久久| 成人av在线一区二区| 亚洲精品写真福利| 91黄色在线观看| 久久国产日韩欧美精品| 国产精品乱码人人做人人爱| 欧美日韩在线三区| 精品亚洲免费视频| 亚洲日本在线a| a4yy欧美一区二区三区| 五月激情综合色| 久久天天做天天爱综合色| 色美美综合视频| 亚洲视频一区二区免费在线观看| 欧美三区在线观看| 国产精品影视网| 一区二区三区日韩精品| 日韩视频免费观看高清在线视频| 国产91精品免费| 日韩国产欧美在线视频| 国产精品日韩成人| 日韩一级大片在线观看| av不卡在线播放| 久久99精品久久久久| 亚洲国产精品一区二区尤物区| 久久综合久久综合亚洲| 欧美日韩国产系列| www.久久久久久久久| 韩国三级在线一区| 亚洲1区2区3区视频| 国产精品国模大尺度视频| 精品免费日韩av| 欧美亚洲一区二区在线观看| 粉嫩绯色av一区二区在线观看| 日韩精品欧美精品| 亚洲男人天堂av网| 中文字幕精品—区二区四季| 日韩午夜av电影| 欧美日韩国产高清一区二区三区| 99久久久久久| 99久久久无码国产精品| 国产成人一区在线| 久久99精品国产.久久久久| 天堂蜜桃一区二区三区| 亚洲激情中文1区| 国产精品久久久久影视| 久久久久高清精品| 精品99999| 日韩片之四级片| 欧美精品丝袜久久久中文字幕| 色婷婷精品大视频在线蜜桃视频| 成人av电影在线网| 成人一区二区在线观看| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲欧美一区二区三区国产精品| 久久综合九色综合欧美98 | 日日夜夜精品视频免费| 亚洲激情图片小说视频| 一区二区三区在线视频播放| 亚洲三级久久久| 一区二区在线免费| 国产一区二区三区免费在线观看| 日韩在线一二三区| 肉肉av福利一精品导航| 天天综合色天天综合色h| 亚洲成人黄色影院| 肉肉av福利一精品导航| 日本不卡高清视频| 激情欧美一区二区三区在线观看| 精品在线一区二区三区| 国产一区二区美女| 成人爽a毛片一区二区免费| av午夜精品一区二区三区| 成a人片亚洲日本久久| 色婷婷一区二区| 91精品欧美久久久久久动漫| 91精品一区二区三区久久久久久| 欧美一区二区国产| 91色九色蝌蚪| 欧美日韩卡一卡二| 精品毛片乱码1区2区3区| 国产视频亚洲色图| 精品捆绑美女sm三区| 国产欧美精品一区二区色综合朱莉| 国产日韩欧美a| 亚洲在线成人精品| 麻豆一区二区99久久久久| 国产.欧美.日韩| 在线亚洲+欧美+日本专区| 成人av影视在线观看| 欧美日韩午夜精品| 精品国产乱码久久久久久蜜臀| 国产精品理论片在线观看| 午夜影院在线观看欧美| 精品系列免费在线观看| 91色porny在线视频| 精品国产乱码久久久久久图片 | 欧美一区二区三区性视频| 欧美精品一区二区久久婷婷| 中文字幕日韩精品一区| 欧美激情艳妇裸体舞| 亚洲小少妇裸体bbw| 国产自产高清不卡| 欧美性高清videossexo| 久久精品无码一区二区三区| 一区二区三区91| 国产精品综合av一区二区国产馆| 在线亚洲欧美专区二区| 久久婷婷综合激情| 五月婷婷激情综合| 北条麻妃一区二区三区| 日韩免费视频一区二区| 久久久久久一级片| 亚洲成av人片一区二区梦乃 | 欧美色图12p| 欧美国产日韩一二三区| 日本中文字幕一区二区有限公司| 成人短视频下载| 精品国产凹凸成av人导航| 亚洲国产综合91精品麻豆| 成人免费av网站| 久久久久久久久久久电影| 日本在线不卡视频一二三区| 一本久道久久综合中文字幕| 国产精品人人做人人爽人人添| 麻豆91小视频| 欧美一区二区大片| 一区av在线播放| 99久久er热在这里只有精品15| 久久久青草青青国产亚洲免观| 美腿丝袜亚洲综合| 91精品久久久久久久99蜜桃| 亚洲va在线va天堂| 91久久线看在观草草青青| 亚洲天堂成人网| 91视频xxxx| 亚洲三级电影网站| 91麻豆国产在线观看| 中文字幕在线不卡视频| 成人精品免费看| 国产精品水嫩水嫩| 岛国一区二区在线观看| 亚洲国产精品精华液ab| 粉嫩av亚洲一区二区图片|