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

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

?? adjmwgraph.h

?? C++版的數(shù)據(jù)結(jié)構(gòu)源代碼
?? H
字號:
#include "SeqList.h"
#include "SeqQueue.h"

const int MaxVertices = 10;
const int MaxWeight = 10000;

class AdjMWGraph
{
	private:
		SeqList Vertices;
		int Edge[MaxVertices][MaxVertices];
		int numOfEdges;
	public:
		AdjMWGraph(const int sz = MaxVertices);

		int GraphEmpty()const 
			{return Vertices.ListEmpty();}
		int NumOfVertices(void)
			{return Vertices.ListSize();}
		int NumOfEdges(void)
			{return numOfEdges;}
		VerT GetValue(const int i);
		int GetWeight(const int v1, const int v2);

		void InsertVertex(const VerT &vertex);
		void InsertEdge(const int v1, const int v2, int weight);
		void DeleteVertex(const int v);
		void DeleteEdge(const int v1, const int v2);

		int GetFirstNeighbor(const int v);
		int GetNextNeighbor(const int v1, const int v2);

		void DepthFirstSearch(const int v, int visited[], void visit(VerT item));
		void BroadFirstSearch(const int v, int visited[], void visit(VerT item));
		void DepthFirstSearch(void visit(VerT item));
		void BroadFirstSearch(void visit(VerT item));
};

AdjMWGraph::AdjMWGraph(const int sz)
{
	for(int i = 0; i < sz; i++)
		for(int j = 0; j < sz; j++)
		{
			if(i == j) Edge[i][j] = 0;
			else Edge[i][j] = MaxWeight;
		}
	numOfEdges = 0;
}

VerT AdjMWGraph::GetValue(const int i)
{
	if(i < 0 || i > Vertices.ListSize())
	{
		cerr << "參數(shù)i越界出錯!" << endl;
		exit(1);
	}
	return Vertices.GetData(i);
}

int AdjMWGraph::GetWeight(const int v1, const int v2)
{
	if(v1 < 0 || v1 > Vertices.ListSize() || v2 < 0 || v2 > Vertices.ListSize())
	{
		cerr << "參數(shù)v1或v2越界出錯!" << endl;
		exit(1);
	}
	return Edge[v1][v2];
}

void AdjMWGraph::InsertVertex(const VerT &vertex)
{
	Vertices.Insert(vertex, Vertices.ListSize());
}

void AdjMWGraph::InsertEdge(const int v1, const int v2, int weight)
{
	if(v1 < 0 || v1 > Vertices.ListSize() || v2 < 0 || v2 > Vertices.ListSize())
	{
		cerr << "參數(shù)v1或v2越界出錯!" << endl;
		exit(1);
	}
	Edge[v1][v2] = weight;
	numOfEdges++;
}

void AdjMWGraph::DeleteVertex(const int v)
{
	for(int i = 0; i < Vertices.ListSize(); i++)
		for(int j = 0; j < Vertices.ListSize(); j++)
			if((i == v || j == v) && i != j && Edge[i][j] > 0 && Edge[i][j] < MaxWeight) 
			{
				Edge[i][j] = MaxWeight;
				numOfEdges--;
			}
	Vertices.Delete(v);
}

void AdjMWGraph::DeleteEdge(const int v1, const int v2)
{
	if(v1 < 0 || v1 > Vertices.ListSize() || v2 < 0 || v2 > Vertices.ListSize() || v1 == v2)
	{
		cerr << "參數(shù)v1或v2出錯!" << endl;
		exit(1);
	}
	Edge[v1][v2] = MaxWeight;
	numOfEdges--;
}

int AdjMWGraph::GetFirstNeighbor(const int v)
{
	if(v < 0 || v > Vertices.ListSize())
	{
		cerr << "參數(shù)v1越界出錯!" << endl;
		exit(1);
	}
	for(int col = 0; col <= Vertices.ListSize(); col++)
		if(Edge[v][col] > 0 && Edge[v][col] < MaxWeight) return col;
	return -1;
}

int AdjMWGraph::GetNextNeighbor(const int v1, const int v2)
{
	if(v1 < 0 || v1 > Vertices.ListSize() || v2 < 0 || v2 > Vertices.ListSize())
	{
		cerr << "參數(shù)v1或v2越界出錯!" << endl;
		exit(1);
	}
	for(int col = v2+1; col <= Vertices.ListSize(); col++)
		if(Edge[v1][col] > 0 && Edge[v1][col] < MaxWeight) return col;
	return -1;
}

void AdjMWGraph::DepthFirstSearch(void visit(VerT item))
{
	int *visited = new int[NumOfVertices()];
	for(int i = 0; i < NumOfVertices(); i++) visited[i] = 0;
	for(i = 0; i < NumOfVertices(); i++)
		if(! visited[i]) DepthFirstSearch(i, visited, visit);
	delete []visited;
}

void AdjMWGraph::DepthFirstSearch(const int v, int visited[], void visit(VerT item))
{
	visit(GetValue(v));
	visited[v] = 1;

	int w = GetFirstNeighbor(v);
	while(w != -1)
	{
		if(! visited[w]) DepthFirstSearch(w, visited, visit);
		w = GetNextNeighbor(v, w);
	}
}

void AdjMWGraph::BroadFirstSearch(void visit(VerT item))
{
	int *visited = new int[NumOfVertices()];
	for(int i = 0; i < NumOfVertices(); i++) visited[i] = 0;
	for(i = 0; i < NumOfVertices(); i++)
		if(!visited[i]) BroadFirstSearch(i, visited, visit);
	delete []visited;
}

void AdjMWGraph::BroadFirstSearch(const int v, int visited[], void visit(VerT item))
{
	VerT u, w;
	SeqQueue queue;
	visit(GetValue(v));
	visited[v] = 1;
	queue.QInsert(v);
	while(!queue.QueueEmpty())
	{
		u = queue.QDelete();
		w = GetFirstNeighbor(u);
		while(w != -1)
		{
			if(!visited[w])
			{
				visit(GetValue(w));
				visited[w] = 1;
				queue.QInsert(w);
			}
			w = GetNextNeighbor(u, w);
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区在线看| 国产精品美女久久久久高潮| 91黄色免费观看| 色综合久久88色综合天天免费| 国产白丝网站精品污在线入口 | 国产高清一区日本| 精品午夜一区二区三区在线观看| 免费久久精品视频| 美女一区二区久久| 另类小说图片综合网| 欧美视频中文字幕| 国产日韩欧美综合一区| 久久久精品欧美丰满| 国产欧美日韩在线视频| 国产精品久久久久久久久晋中| 国产欧美精品日韩区二区麻豆天美| 国产日韩欧美精品在线| 国产精品久久777777| 亚洲欧美另类小说| 亚洲高清久久久| 奇米在线7777在线精品| 国产乱人伦偷精品视频免下载| 国产成人精品免费网站| 91蝌蚪porny| 色94色欧美sute亚洲线路一久| 欧美又粗又大又爽| 在线综合视频播放| 精品国产1区2区3区| 国产日韩欧美精品在线| 亚洲精品成a人| 亚洲成人av一区二区| 经典三级一区二区| av电影在线观看完整版一区二区| 欧美在线色视频| 日韩欧美一区电影| 国产精品乱码久久久久久| 一区二区在线观看视频| 日韩av高清在线观看| 国产精品一二三四| 欧美特级限制片免费在线观看| 欧美日韩亚洲国产综合| 精品成人佐山爱一区二区| 国产精品色一区二区三区| 亚洲综合成人在线视频| 久色婷婷小香蕉久久| www.欧美精品一二区| 欧美乱熟臀69xxxxxx| 国产精品天天看| 视频一区二区中文字幕| 成人99免费视频| 91精品国产91综合久久蜜臀| 中文一区二区在线观看| 亚洲国产日韩在线一区模特| 久99久精品视频免费观看| 91色.com| 久久久美女艺术照精彩视频福利播放| 亚洲欧美日韩中文播放| 极品少妇一区二区| 欧美综合天天夜夜久久| 国产清纯白嫩初高生在线观看91 | 色综合一区二区| 欧美精品久久一区| 国产精品乱码一区二区三区软件| 日韩精品国产欧美| 91视频91自| 国产午夜一区二区三区| 天堂一区二区在线| 99久久国产综合精品女不卡| 欧美一二三四在线| 一区二区三区美女| 国产成人在线视频网站| 91精品国产综合久久精品 | 国产高清久久久久| 欧美日韩一区二区三区四区| 国产精品乱人伦| 国产美女久久久久| 777奇米成人网| 伊人色综合久久天天人手人婷| 国产成人av自拍| 日韩天堂在线观看| 亚洲一区二区三区小说| 成人免费毛片app| 久久久99久久| 国产综合色在线| 日韩精品中文字幕一区二区三区 | 成人高清视频免费观看| 精品三级av在线| 免费人成精品欧美精品| 欧美午夜片在线看| 亚洲黄色小说网站| 中文字幕欧美一区| 婷婷一区二区三区| 欧美视频中文字幕| 亚洲精品成人少妇| 一本大道久久精品懂色aⅴ| 国产女主播一区| 国产精品一二三四五| 久久综合网色—综合色88| 久久激五月天综合精品| 日韩一区二区三区av| 视频一区国产视频| 4438x成人网最大色成网站| 亚洲国产一区在线观看| 日本道精品一区二区三区| 亚洲欧美乱综合| 在线免费亚洲电影| 一区二区三区四区在线| 欧美色大人视频| 亚洲第一福利视频在线| 欧美人与z0zoxxxx视频| 日本少妇一区二区| 精品蜜桃在线看| 国产激情91久久精品导航| 久久久久国产免费免费| 成人在线视频一区| 一区二区中文字幕在线| 在线免费视频一区二区| 亚洲成人午夜电影| 日韩欧美色综合| 国产老肥熟一区二区三区| 国产日韩一级二级三级| 91年精品国产| 亚洲成人动漫精品| 欧美变态口味重另类| 国产美女久久久久| 亚洲丝袜美腿综合| 欧美日韩国产一级二级| 免费久久精品视频| 国产午夜亚洲精品午夜鲁丝片| 99精品一区二区| 亚洲国产日韩a在线播放| 日韩欧美国产不卡| 国产成人av电影在线观看| 中文字幕日韩一区| 欧美三级日韩三级| 久久99精品久久只有精品| 国产精品久久久久影院亚瑟| 色av成人天堂桃色av| 日本va欧美va欧美va精品| 日本一区二区视频在线| 欧美在线免费观看视频| 久久精品国产亚洲一区二区三区| 中文在线一区二区| 欧美日韩成人在线| 国产成人午夜精品5599| 一区二区三区欧美亚洲| 精品国产在天天线2019| 色天使色偷偷av一区二区| 蜜臀va亚洲va欧美va天堂| 国产精品电影一区二区| 亚洲欧美另类在线| 欧美日韩在线免费视频| 亚洲va欧美va天堂v国产综合| 538在线一区二区精品国产| 国产成人综合视频| 一区二区三区视频在线看| 精品久久久久久最新网址| 99久久精品国产毛片| 麻豆一区二区在线| 亚洲精品成人少妇| 久久精品网站免费观看| 欧美日韩国产美| k8久久久一区二区三区| 日本特黄久久久高潮| 亚洲欧美日韩电影| 久久一夜天堂av一区二区三区| 欧美丝袜丝交足nylons图片| 成人小视频免费观看| 免费av网站大全久久| 亚洲猫色日本管| 久久综合久久综合亚洲| 免费久久99精品国产| 精品少妇一区二区三区视频免付费| 91婷婷韩国欧美一区二区| 久久国产精品区| 午夜精品福利一区二区蜜股av | 精品国产成人系列| 欧美亚洲国产一区在线观看网站| 国产精品99久久久| 视频一区二区三区中文字幕| 亚洲三级在线看| 国产精品视频免费看| 欧美大胆人体bbbb| 欧美福利视频导航| 色av成人天堂桃色av| 成a人片亚洲日本久久| 国产精品12区| 美女视频黄 久久| 亚洲va国产天堂va久久en| 亚洲摸摸操操av| 国产精品婷婷午夜在线观看| 久久久精品国产免大香伊| 精品剧情v国产在线观看在线| 精品婷婷伊人一区三区三| 一本一道久久a久久精品 | 色嗨嗨av一区二区三区| aaa欧美色吧激情视频| 成人视屏免费看| 国产精品自拍在线| 国产精品综合一区二区三区|