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

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

?? 圖的遍歷.cpp

?? 圖的遍歷_鄰接表存儲.cpp 檢驗深度優先和廣度優先的程序(鄰接表存儲表示)
?? CPP
字號:
// 圖的遍歷_鄰接表存儲.cpp   檢驗深度優先和廣度優先的程序(鄰接表存儲表示)
#include<string.h>	//strcmp()
#include<malloc.h> 
#include<process.h>	//exit()
#include<iostream.h>	//cout,cin

typedef char VertexType[5]; // 頂點類型為字符串
 // 圖的鄰接表存儲表示
#define MAXV 20 //最大邊數

struct ArcNode // 表結點結構,省掉弧的相關信息(無權圖)
{
	int adjvex; // 該弧所指向的頂點的位置
	ArcNode *nextarc; // 指向下一條弧的指針
}; // 表結點

typedef struct VNode
{
	VertexType data;	// 頂點信息
	ArcNode *firstarc; // 第一個表結點的地址,指向第一條依附該頂點的弧的指針
}AdjList[MAXV]; // 頭結點

struct ALGraph
{
	AdjList vertices;
	int vexnum,arcnum; // 圖的當前頂點數和弧數
};
 
//與單鏈表的變量類型建立聯系
typedef ArcNode *LinkList; // 定義指向單鏈表結點的指針是指向圖的表結點的指針

int LocateVex(ALGraph G,VertexType u)
{ // 初始條件:圖G存在,u和G中頂點有相同特征
  // 操作結果:若G中存在頂點u,則返回該頂點在圖中位置;否則返回-1
	for(int i=0;i<G.vexnum;++i)
		if(strcmp(u,G.vertices[i].data)==0)
			return i;
		cout<<"無頂點"<<u<<endl;		//邊的頂點數據有誤
		exit(0);
}

void CreateGraph(ALGraph &G)
{ // 采用鄰接表存儲結構
	int i,j,k;
	VertexType vi,vj; // 連接邊或弧的2頂點
	cout<<"請輸入此圖的頂點數和邊數:";
	cin>>G.vexnum;	//讀入頂點數
	cin>>G.arcnum;	//讀入邊數
	cout<<"請輸入此圖所有頂點的編號:";
	for(i=0;i<G.vexnum;++i)		// 構造頂點向量
	{
		cin>>G.vertices[i].data;
		G.vertices[i].firstarc=NULL; // 初始化與該頂點有關的出弧鏈表
	}
	cout<<"請輸入此圖的有向邊(按照起點、終點依次輸入):\n";
	for(k=0;k<G.arcnum;++k) // 構造相關弧鏈表
	{
		cin>>vi;
		cin>>vj;
        i=LocateVex(G,vi);
        j=LocateVex(G,vj);
        ArcNode *p;
        p=(ArcNode *)malloc(sizeof(ArcNode));
        p->adjvex=j;
        p->nextarc=G.vertices[i].firstarc;
        G.vertices[i].firstarc=p;
	}
}

void Display(ALGraph G)
{ // 輸出圖的鄰接矩陣G
	int i;
	ArcNode *p;
	cout<<"該無向圖有"<<G.vexnum<<"個頂點:";
	for(i=0;i<G.vexnum;++i)
		cout<<G.vertices[i].data<<'\t';
	cout<<"\n該無向圖有"<<G.arcnum<<"條邊:\n";
	for(i=0;i<G.vexnum;i++)
	{
		p=G.vertices[i].firstarc;
		while(p)
		{
			if(i<p->adjvex) // 無向圖兩次中只顯示一次
			{ 
				cout<<G.vertices[i].data<<"-"<<G.vertices[p->adjvex].data<<endl;
			}
			p=p->nextarc;
		}
	}
	cout<<endl;
}

int visited[MAXV]; // 訪問標志數組(全局量)

void DFS(ALGraph G,int v)	//僅適用于鄰接表存儲結構(與算法7.5有不同)
{ // 從第v個頂點出發遞歸地深度優先遍歷圖G。
   int w;
   ArcNode *p;
   visited[v]=1;	 // 設置訪問標志為1(已訪問)
   cout<<G.vertices[v].data<<'\t'; // 訪問第v個頂點
   for(p=G.vertices[v].firstarc; p ;p=p->nextarc)
   {
	   w=p->adjvex;
	   if(!visited[w]) DFS(G,w); // 對v的尚未訪問的鄰接點w遞歸調用DFS
   }
}
void DFSTraverse(ALGraph G)
{ // 對圖G作深度優先遍歷。算法7.4
	int i;
	for(i=0;i<G.vexnum;i++)
		visited[i]=0; // 訪問標志數組初始化
	cout<<"深度優先搜索的結果:\n";
	for(i=0;i<G.vexnum;i++)
		if(!visited[i]) DFS(G,i); // 對尚未訪問的頂點調用DFS
		cout<<endl;
}

// 單鏈隊列--隊列的鏈式存儲結構
typedef struct QNode
{
	int data;
	QNode *next;
}*QueuePtr;
struct LinkQueue
{
	QueuePtr front,rear; // 隊頭、隊尾指針
};

void InitQueue(LinkQueue &Q)
{ // 構造一個空隊列Q
	if(!(Q.front=Q.rear=new QNode)) exit(0);
	Q.front->next=NULL;
}
void EnQueue(LinkQueue &Q,int e)		//入隊
{ // 插入元素e為Q的新的隊尾元素
	QueuePtr p;
	if(!(p=new QNode)) exit(0);		// 存儲分配失敗
	p->data=e;
	p->next=NULL;
	Q.rear->next=p;
	Q.rear=p;
}
int DeQueue(LinkQueue &Q,int &e)	//出隊
{ // 若隊列不空,刪除Q的隊頭元素,用e返回其值,并返回OK,否則返回ERROR
	QueuePtr p;
	if(Q.front==Q.rear) return 0;
	p=Q.front->next;
	e=p->data;
	Q.front->next=p->next;
	if(Q.rear==p)
		Q.rear=Q.front;
	delete p;
	return 1;
}

void BFSTraverse(ALGraph G)
{   //按廣度優先非遞歸遍歷圖G。使用輔助隊列Q和訪問標志數組visited。算法
	int v,u,w;
	ArcNode *p;
	LinkQueue Q;
	for(v=0;v<G.vexnum;++v) visited[v]=0;		// 置初值(未訪問標志)
	InitQueue(Q);		// 置空的輔助隊列Q
	cout<<"廣度優先搜索的結果:\n";
	for(v=0;v<G.vexnum;v++) // 如果是連通圖,只v=0就遍歷全圖
		if(!visited[v]) // v尚未訪問
		{
			visited[v]=1;	//置已訪問標志
			cout<<G.vertices[v].data<<'\t';
			EnQueue(Q,v);	// v入隊列
			while(Q.front->next!=NULL) // 隊列不空
			{
				DeQueue(Q,u); // 隊頭元素出隊并置為u
				p=G.vertices[u].firstarc;
				while (p)
				{
					w=p->adjvex;
					if(!visited[w]) // w為u的尚未訪問的鄰接頂點
					{
						visited[w]=1;
						cout<<G.vertices[w].data<<'\t';
						EnQueue(Q,w); // w入隊
					}
					p=p->nextarc;
				}
			}
			cout<<"\n";
		}
}

void main()
{
	ALGraph g;
	CreateGraph(g); // 創建無向圖
	Display(g);		// 輸出無向圖
	DFSTraverse(g); // 調用算法7.4,有改動
	BFSTraverse(g); // 調用算法7.6,有改動
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩视频一区二区| 日韩免费看的电影| 国产综合一区二区| 亚洲国产日产av| 国产精品第一页第二页第三页| 久久久久久免费网| 国产视频一区在线观看| 久久久综合精品| 国产人久久人人人人爽| 久久久亚洲欧洲日产国码αv| 久久久午夜精品理论片中文字幕| www国产精品av| 久久久久国产成人精品亚洲午夜| 久久久国产综合精品女国产盗摄| 国产午夜精品理论片a级大结局| 久久蜜桃一区二区| 中文字幕一区在线| 亚洲日本在线天堂| 无吗不卡中文字幕| 久久精品久久99精品久久| 国内精品国产三级国产a久久| 国产乱码精品一区二区三区av | 丁香六月综合激情| www.亚洲精品| 欧美亚洲国产bt| 欧美二区三区的天堂| 日韩精品一区国产麻豆| 久久品道一品道久久精品| 国产日韩精品一区| 亚洲另类在线制服丝袜| 免费高清不卡av| 国产a区久久久| 欧美日韩综合在线免费观看| 日韩欧美一卡二卡| 亚洲欧美综合色| 日韩精品免费专区| 国产·精品毛片| 欧美裸体一区二区三区| 精品国产91亚洲一区二区三区婷婷 | 免费人成精品欧美精品| 国产福利91精品| 欧美日韩亚洲丝袜制服| 国产婷婷一区二区| 日日噜噜夜夜狠狠视频欧美人 | 国产乱码精品一区二区三区五月婷 | 亚洲va欧美va人人爽| 免费国产亚洲视频| 99国产欧美久久久精品| 日韩精品中文字幕在线一区| 国产精品久久久久久久久免费相片 | 风间由美一区二区av101| 91成人免费电影| 2020日本不卡一区二区视频| 亚洲午夜激情网站| 高清不卡一二三区| 精品精品国产高清一毛片一天堂| 亚洲精品免费在线观看| 国产在线麻豆精品观看| 欧美日韩一卡二卡| 亚洲欧洲在线观看av| 激情欧美一区二区三区在线观看| 欧美性做爰猛烈叫床潮| 中文一区二区在线观看| 毛片不卡一区二区| 欧美精品色一区二区三区| 亚洲精品视频在线看| 国产高清久久久| 精品不卡在线视频| 麻豆久久久久久久| 91精品国产欧美一区二区18| 亚洲视频狠狠干| 高清shemale亚洲人妖| 欧美精品一区二区久久婷婷| 日韩高清在线一区| 欧美美女喷水视频| 亚洲gay无套男同| 欧美无砖专区一中文字| 亚洲免费在线看| 色先锋aa成人| 一个色综合网站| 91网址在线看| 亚洲男同1069视频| 在线日韩一区二区| 亚洲一级片在线观看| 91成人免费电影| 亚洲.国产.中文慕字在线| 欧美三级日韩三级| 日韩电影在线一区二区三区| 在线成人av影院| 久久爱www久久做| 欧美精品一区二区精品网| 国产精品亚洲午夜一区二区三区| 2014亚洲片线观看视频免费| 国产乱码精品一区二区三区av| 久久久久久久网| 99视频精品在线| 亚洲午夜精品在线| 日韩欧美久久久| 国产二区国产一区在线观看| 亚洲欧洲日本在线| 欧美日韩精品免费观看视频| 免费成人在线视频观看| 精品播放一区二区| 91色在线porny| 日韩中文欧美在线| 国产亚洲视频系列| 色综合天天综合网天天狠天天| 性做久久久久久免费观看| 日韩精品一区二区三区中文不卡| 国产福利一区在线观看| 一区二区三区高清在线| 精品国产制服丝袜高跟| a级精品国产片在线观看| 午夜精品一区二区三区电影天堂| 精品卡一卡二卡三卡四在线| av在线播放不卡| 日韩av在线播放中文字幕| 国产精品女上位| 欧美美女直播网站| 成人黄色小视频| 日韩精品1区2区3区| 亚洲视频狠狠干| 精品久久久久久久人人人人传媒| av资源网一区| 国产资源精品在线观看| 一区二区三区小说| 欧美激情中文不卡| 日韩精品一区二区三区swag| 91免费视频观看| 国产精品影视在线| 日韩激情一区二区| 亚洲精品国产a久久久久久| 2021中文字幕一区亚洲| 欧美三区在线视频| 91免费国产在线| 国产成人综合亚洲网站| 欧美bbbbb| 精品系列免费在线观看| 日韩欧美一级片| 欧美性猛交xxxx黑人交| 99国产欧美另类久久久精品| 国产乱码精品1区2区3区| 天堂av在线一区| 一区二区三区鲁丝不卡| 亚洲欧洲综合另类| 中文字幕第一区| 国产日韩av一区| 国产视频不卡一区| 久久影视一区二区| 欧美精品一区视频| 精品国产伦一区二区三区观看体验| 欧美日韩免费视频| 欧美日韩国产a| 欧美日本一区二区三区四区 | 国产精品久久久久影院老司| 久久麻豆一区二区| 久久精品一区四区| 国产丝袜欧美中文另类| 久久久精品蜜桃| 欧美国产日韩精品免费观看| 久久精品在这里| 国产欧美日韩中文久久| 中文字幕乱码日本亚洲一区二区| 欧美激情综合五月色丁香小说| 国产日韩在线不卡| 亚洲欧美日本韩国| 亚洲一区二区综合| 日韩精品视频网| 久久99精品视频| 国产91综合一区在线观看| 成人网页在线观看| 色久综合一二码| 欧美四级电影在线观看| 91精品免费在线观看| 日韩视频一区二区三区在线播放| 日韩欧美一级片| 国产欧美日本一区二区三区| 亚洲欧美一区二区在线观看| 亚洲一二三区不卡| 麻豆精品精品国产自在97香蕉| 国产一区视频网站| 99精品欧美一区二区三区小说 | 国产资源在线一区| 99精品国产99久久久久久白柏| 欧美色中文字幕| 日韩一二三区视频| 国产精品久久久久婷婷| 亚洲图片欧美综合| 韩国毛片一区二区三区| 成人深夜在线观看| 7777精品伊人久久久大香线蕉完整版 | 日本一区二区不卡视频| 亚洲精品久久久久久国产精华液| 午夜欧美一区二区三区在线播放| 国产在线一区观看| 欧美三级视频在线播放| 久久午夜国产精品| 亚洲与欧洲av电影| 国产不卡在线视频| 在线播放中文一区|