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

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

?? graph_matrix.h

?? 圖的基類以及最短路徑算法
?? H
字號(hào):
//GraphMatrix.h

//Edge
class Edge
{ 
public: 
	int weight;  // Edge weight
	int from; 
	int to; // form To to 
	Edge(){};								// 構(gòu)造函數(shù)
	Edge(int f,int t,int w)   { 			// 構(gòu)造函數(shù)
		from=f;   to=t;   weight=w;
	}
	bool operator < (const Edge &arg) {return (this->weight < arg.weight);};
	bool operator == (const Edge &arg) {return (this->weight == arg.weight);};
	bool operator > (const Edge &arg) {return (this->weight > arg.weight);};
	bool operator <= (const Edge &arg) {return (this->weight <= arg.weight);};
	bool operator >= (const Edge &arg) {return (this->weight >= arg.weight);};
};

// 圖基類
class Graph  {
public:
	int numVertex;             //圖的頂點(diǎn)的個(gè)數(shù)
	int numEdge;				//圖的邊的數(shù)目
	int *Mark;					/*Mark指針指向保存有圖的頂點(diǎn)的標(biāo)志位的數(shù)組,標(biāo)志位用來(lái)標(biāo)記某頂點(diǎn)是否被訪問過*/
	int *Indegree;				//Indegree指針指向保存有圖的頂點(diǎn)的入度的數(shù)組
	Graph(int numVert)  {		//構(gòu)造函數(shù)
		numVertex = numVert;      //確定圖的頂點(diǎn)的個(gè)數(shù)
		numEdge = 0;				//確定圖的邊的數(shù)目
		Indegree = new int[numVertex]; /*為保存圖的頂點(diǎn)的入度申請(qǐng)數(shù)組,Indegree為數(shù)組指針*/
		Mark = new int[numVertex];	 /*為圖的頂點(diǎn)的標(biāo)志位申請(qǐng)數(shù)組,Mark為數(shù)組指針*/
		
		for (int i = 0; i < numVertex; i ++)  {	/*確定圖的頂點(diǎn)的標(biāo)志位和入度,即所有頂點(diǎn)的標(biāo)志位初始化為未被訪問過,入度初始化為0*/
			Mark[i] = UNVISITED;
			Indegree[i] = 0;
		}
	};
	~Graph() {				//析構(gòu)函數(shù)
		delete [] Mark;
		delete [] Indegree;
	}; 
	virtual Edge FirstEdge(int oneVertex) {	// 返回與頂點(diǎn)oneVertex相關(guān)聯(lián)的第一條邊
		Edge myEdge;
		myEdge.from = oneVertex; 
		myEdge.to = -1;
		return myEdge;
	}; 
	virtual Edge NextEdge(Edge preEdge) {      // 返回與邊PreEdge有相同關(guān)聯(lián)頂點(diǎn)的下一條邊
		return preEdge;
	};
	int VerticesNum() {		//返回圖的頂點(diǎn)個(gè)數(shù)
		return numVertex;
	};       
	int EdgesNum() {			//返回圖的邊數(shù)
		return numEdge;
	};
	int FromVertex(Edge oneEdge) {  // 返回oneEdge的始點(diǎn)
		return oneEdge.from;
	}; 
	int ToVertex(Edge oneEdge) {	// 返回oneEdge的終點(diǎn)
		return oneEdge.to;
	};    
	int Weight(Edge oneEdge) {		// 返回oneEdge的權(quán)值
		return oneEdge.weight;
	}; 
	bool IsEdge(Edge oneEdge)  {	//如果oneEdge是邊則返回TRUE,否則返回FALSE
		if (oneEdge.weight > 0 && oneEdge.weight < INFINITE && oneEdge.to >= 0)
			return true;
		else
			return false;
	}; 
	virtual void setEdge(int from, int to, int weight) = 0;
	virtual void delEdge(int from, int to) = 0;
};


// 圖的相鄰矩陣表示法
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)中的計(jì)數(shù)器
		matrix = (int **)new int*[numVertex]; /*申請(qǐng)matrix數(shù)組,該數(shù)組有numVertex個(gè)元素,每個(gè)元素是整型指針類型*/
		
		for (i = 0; i < numVertex; i ++)		/*matrix數(shù)組的每個(gè)元素,都指向一個(gè)具有numVertex個(gè)元素的數(shù)組*/
			matrix[i] = new int[numVertex];  
		for (i = 0; i < numVertex; i++)       /*相鄰矩陣的所有元素都初始化為0,如果矩陣元素matrix[i][j]不為0,則表明頂點(diǎn)i與頂點(diǎn)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];			//釋放每個(gè)matrix[i]申請(qǐng)的空間
		delete [] matrix;				//釋放matrix指針指向的空間
	}; 
	Edge FirstEdge(int oneVertex)  {	//返回頂點(diǎn)oneVertex的第一條邊
		Edge myEdge;						//邊myEdge將作為函數(shù)的返回值
		myEdge.from = oneVertex;			//將頂點(diǎn)oneVertex作為邊myEdge的始點(diǎn)
		//  myEdge.to = -1; 
		for (int i = 0; i < numVertex; i ++)   {/* 下面尋找第一個(gè)使得matrix[oneVertex][i]不為0的i值,
												那么邊(oneVertex,i)或者弧<oneVertex,i>即為頂點(diǎn)oneVertex
												的第一條邊,將頂點(diǎn)i作為邊myEdge的終點(diǎn)邊myEdge的權(quán)為
			矩陣元素matrix[oneVertex][i]的值*/
			if (matrix[oneVertex][i] != 0)
			{									
				myEdge.to = i;
				myEdge.weight = matrix[oneVertex][i];
				break;
			}
		}
		return myEdge;/*如果找到了頂點(diǎn)oneVertex的第一條邊,則返回的myEdge確實(shí)是一條邊;如果沒有找到頂點(diǎn)oneVertex的第一條邊,則myEdge的成員變量to為-1,根據(jù)IsEdge函數(shù)判斷可知myEdge不是一條邊*/
	}; 
	Edge NextEdge(Edge preEdge)  { //返回與邊PreEdge有相同關(guān)聯(lián)頂點(diǎn)的下一條邊
		Edge myEdge;
		myEdge.from=preEdge.from; /*將邊myEdge的始點(diǎn)置為與上一條邊preEdge的始點(diǎn)相同*/
		if(preEdge.to<numVertex)  {
			//如果preEdge.to+1>=numVertex,那么就不存在下一條邊了
			for(int i=preEdge.to+1;i<numVertex;i++)  {
				/*尋找下一個(gè)使得//matrix[preEdge.from][i]不為0的i值,那么(preEdge.from,i)或者<preEdge.from,i>即為頂點(diǎn)preEdge.from的下一條邊*/
				if(matrix[preEdge.from][i]!=0)  {
					myEdge.to=i;
					myEdge.weight=matrix[preEdge.from][i];
					break;
				}
			}
		}
		return myEdge; /*如果找到了頂點(diǎn)preEdge.from的下一條邊,則返回的myEdge確實(shí)是一條邊;如果沒有找到頂點(diǎn)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)在只是對(duì)該邊進(jì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í)存在,否則該邊實(shí)際上并不存在(從而不必對(duì)圖的邊數(shù)和頂點(diǎn)to的入度進(jìn)行修改)*/
			numEdge--;
			Indegree[to]--;
		}
		matrix[from][to]=0;		     
	}
};

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


// 函數(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]);
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲图片欧美色图| 欧美韩国一区二区| 一区二区三区视频在线看| 波多野结衣91| 亚洲免费观看高清在线观看| 97精品久久久久中文字幕 | 国产精品久久久久久久久免费相片| 精品国产不卡一区二区三区| 久久国产视频网| 亚洲午夜精品在线| 日韩女优毛片在线| 国产自产2019最新不卡| 国产精品人人做人人爽人人添| 亚洲一区二区高清| 欧美性欧美巨大黑白大战| 午夜欧美视频在线观看| 久久亚洲春色中文字幕久久久| 亚洲国产中文字幕在线视频综合| 国产美女在线精品| 亚洲三级电影网站| 欧美另类z0zxhd电影| 日本中文字幕不卡| 中文字幕 久热精品 视频在线| 欧美a级一区二区| 国产精品美女久久久久久久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 91免费观看国产| 捆绑紧缚一区二区三区视频| 久久久久久久久久美女| 日本道在线观看一区二区| 免费一级欧美片在线观看| 中文字幕在线不卡视频| 欧美日韩一二三区| 精品少妇一区二区| 日本黄色一区二区| 国产精品一区二区久激情瑜伽| 91精品国产一区二区三区蜜臀| 亚洲精品v日韩精品| 欧美久久久久久蜜桃| 丁香六月综合激情| 日韩精品一级二级| 亚洲视频狠狠干| www亚洲一区| 欧美福利视频一区| 91麻豆免费观看| 国产一区在线精品| 青青草精品视频| 夜夜精品视频一区二区| 国产欧美日本一区视频| 日韩一区二区在线播放| 欧美在线高清视频| 99久久99久久久精品齐齐| 久久国产精品72免费观看| 亚洲一区二区偷拍精品| 国产精品色一区二区三区| 日韩免费一区二区三区在线播放| 久久激情五月激情| 亚洲一级二级三级| 日韩毛片一二三区| 国产精品色呦呦| 久久九九全国免费| 久久亚区不卡日本| 精品少妇一区二区三区日产乱码 | 午夜精品久久久久久久| 国产精品久久国产精麻豆99网站| 成人激情免费电影网址| 久久99国产精品久久99 | 欧美日韩国产综合视频在线观看| 日韩福利电影在线观看| 亚洲一区影音先锋| 亚洲午夜激情网站| 亚洲成av人片在线观看无码| 一区二区三区免费在线观看| 国产精品私人影院| 国产精品美女久久久久aⅴ国产馆| 91一区二区在线观看| 成人精品鲁一区一区二区| 国产精品系列在线观看| 国产一区在线精品| 国产精品亚洲第一 | 日韩电影在线观看网站| 亚洲va天堂va国产va久| 一区二区久久久| 亚洲人成电影网站色mp4| 国产精品成人一区二区艾草| 亚洲欧洲精品一区二区三区| 国产精品国产三级国产普通话三级| 欧美性感一区二区三区| 欧美调教femdomvk| 亚洲大尺度视频在线观看| 丝袜国产日韩另类美女| 偷拍亚洲欧洲综合| 国产中文一区二区三区| 国产自产高清不卡| 99re6这里只有精品视频在线观看| 免费久久99精品国产| 国产美女精品在线| 国产99精品国产| 91啦中文在线观看| 欧美日韩国产美| 精品国产区一区| 国产精品美女www爽爽爽| 一区二区三区四区av| 麻豆国产一区二区| 成人综合婷婷国产精品久久蜜臀| 免费在线成人网| 国产91精品免费| 欧亚一区二区三区| 精品剧情在线观看| 亚洲精选视频免费看| 日韩国产欧美在线观看| 国内精品免费**视频| 99re66热这里只有精品3直播 | 亚洲欧美另类在线| 午夜精品福利一区二区三区av| 国产精品成人一区二区三区夜夜夜| 日韩欧美123| 日韩伦理免费电影| 久久99国产精品久久99| 日本久久一区二区| 久久精品日产第一区二区三区高清版 | 成人免费视频视频| 欧美日韩国产天堂| 久久网这里都是精品| 一区二区三区四区激情| 国内精品久久久久影院薰衣草| 久久99精品国产麻豆婷婷| 成人影视亚洲图片在线| 欧美三级视频在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 午夜精品成人在线| 不卡电影一区二区三区| 精品国产免费一区二区三区四区| 午夜久久久久久久久久一区二区| 日韩毛片在线免费观看| 久久黄色级2电影| 欧美精品一二三四| 亚洲乱码日产精品bd| 国产精品99久久久久久宅男| 欧美日韩一区二区三区在线| 国产欧美视频一区二区| 毛片基地黄久久久久久天堂| 色婷婷久久久综合中文字幕| 国产网红主播福利一区二区| 久久精品国产99| 欧美疯狂做受xxxx富婆| 亚洲女同女同女同女同女同69| 国产精品传媒入口麻豆| 国产美女久久久久| 精品久久久久久久久久久久包黑料| 欧美一区二区精品| 亚洲第一成年网| 91久久国产最好的精华液| 亚洲欧洲精品一区二区精品久久久| 亚洲四区在线观看| av成人动漫在线观看| 欧美精品一区二区三区高清aⅴ| 久久久久97国产精华液好用吗| 国产亚洲欧美日韩在线一区| 另类调教123区| 日韩三级在线免费观看| 日韩电影在线观看一区| 777奇米成人网| 香蕉成人伊视频在线观看| 欧美日韩成人综合| 偷拍一区二区三区四区| 91精品国产一区二区三区蜜臀| 久久久久国产免费免费| 国产精选一区二区三区| 久久久久成人黄色影片| 国产精品一二三区| 国产精品你懂的| 91在线码无精品| 亚洲综合成人网| 欧美电影在线免费观看| 日韩专区欧美专区| 欧美www视频| 国产精品亚洲专一区二区三区| 91福利社在线观看| 五月综合激情日本mⅴ| 在线成人av影院| 经典一区二区三区| 国产日产欧美一区| 91蝌蚪porny成人天涯| 亚洲精品国产第一综合99久久| 看片网站欧美日韩| 久久精品欧美一区二区三区不卡| 一区二区三区四区av| 亚洲四区在线观看| 欧美裸体一区二区三区| 久久精品久久精品| 精品对白一区国产伦| 成人做爰69片免费看网站| 亚洲精品精品亚洲| 日韩一级黄色片| 99国产精品久久久久| 樱花草国产18久久久久| 91精品国产欧美一区二区| 国产一区二区三区免费看| 亚洲特黄一级片|