国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第七章 圖論

這篇具有很好參考價(jià)值的文章主要介紹了第七章 圖論。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第七章 圖論

一、數(shù)據(jù)結(jié)構(gòu)定義
  1. 圖的鄰接矩陣存儲(chǔ)法
    #define MaxVertexNum 100 // 節(jié)點(diǎn)數(shù)目的最大值
    
    // 無(wú)邊權(quán),只用0或1表示邊是否存在
    bool graph[MaxVertexNum][MaxVertexNum];
    
    // 有邊權(quán)
    int graph[MaxVertexNum][MaxVertexNum];
    
  2. 圖的鄰接表存儲(chǔ)法
    把所有節(jié)點(diǎn)存儲(chǔ)為節(jié)點(diǎn)數(shù)組,每個(gè)節(jié)點(diǎn)里有自己的數(shù)據(jù)和一個(gè)邊指針,這個(gè)邊指針相當(dāng)于一個(gè)鏈表的頭指針,這個(gè)鏈表里存放所有與這個(gè)節(jié)點(diǎn)相連的邊,邊里存放該邊指向的節(jié)點(diǎn)編號(hào)和下一條邊指針
    第七章 圖論,數(shù)據(jù)結(jié)構(gòu)代碼相關(guān),圖論
    第七章 圖論,數(shù)據(jù)結(jié)構(gòu)代碼相關(guān),圖論
    #define MaxVertexNum 100 // 節(jié)點(diǎn)數(shù)目的最大值
    typedef struct EdgeNode{ // 邊表節(jié)點(diǎn)
    	int adjvex; // 該邊所指向的節(jié)點(diǎn)編號(hào)
    	struct EdgeNode *next; // 指向下一條邊的指針
    	// Infotype info; // 邊權(quán)值(如果有)
    }EdgeNode;
    
    typedef struct VNode{ //節(jié)點(diǎn)表節(jié)點(diǎn)
    	VertexType data; // 節(jié)點(diǎn)信息
    	EdgeNode *first; // 指向第一條依附該節(jié)點(diǎn)的邊的指針
    }VNode;
    
    typedef struct{
    	int verNum, edgeNum; // 節(jié)點(diǎn)數(shù)和邊數(shù)
    	VNode AdjList[MaxVertexNum]; // 節(jié)點(diǎn)數(shù)組
    } ALGraph; // 鄰接表
    
  3. 圖的十字鏈表存儲(chǔ)法(有向圖)

    分為弧節(jié)點(diǎn)和頂點(diǎn)節(jié)點(diǎn)。一個(gè)弧指向兩個(gè)?。ㄊ撬膬蓚€(gè)下一接替者),一個(gè)頂點(diǎn)指向兩個(gè)?。ǘ际撬牡谝蝗危?br> 此外,十字鏈表還可用于存儲(chǔ)稀疏矩陣,矩陣的各行各列都各用一個(gè)鏈表存儲(chǔ),同時(shí)將所有行鏈表的表頭rhead存儲(chǔ)到一個(gè)數(shù)組,所有列鏈表的表頭存儲(chǔ)到另一個(gè)數(shù)組chead中。
    可以將十字鏈表記憶為串起來(lái)的三元組,即一個(gè)邊節(jié)點(diǎn)記為(行,value,列)(即(弧尾,權(quán)值,弧頭)),多個(gè)三元組的行和列分別串成一個(gè)鏈表,代表相同行的元素以及相同列的元素(即弧尾相同和弧頭相同的元素)
    第七章 圖論,數(shù)據(jù)結(jié)構(gòu)代碼相關(guān),圖論

    typedef struct edgeNode{
    	int headVer, tailVer; 
    	struct edgeNode *hLink, *tLink; // 分別指向弧頭和弧尾相同的下一條邊
    	infoType info;
    } edgeNode;
    
    typedef struct VNode{
    	VerType data;
    	edgeNode *firstIn, *firstOut; // 分別指向入邊表和出邊表中的第一個(gè)邊節(jié)點(diǎn)
    } VNode;
    
    typedef struct{
    	int verNum, edgeNum;
    	VNode XList[verNum]; // 頂點(diǎn)表
    } OLGraph;
    
  4. 圖的鄰接多重表存儲(chǔ)法(無(wú)向圖)
    第七章 圖論,數(shù)據(jù)結(jié)構(gòu)代碼相關(guān),圖論
    typedef struct edgeNode{
    	int iVer, jVer; // 邊的兩個(gè)頂點(diǎn)在頂點(diǎn)表(數(shù)組)里的下標(biāo)
    	struct edgeNode *iLink, *jLink; // 和頂點(diǎn)相連的下一條邊
    	infoType info; // 帶權(quán)圖可存儲(chǔ)邊的權(quán)值
    } edgeNode;
    
    typedef struct VNode{
    	VerType data;
    	edgeNode *firstEdge;
    } VNode;
    
    typedef struct{
    	int verNum, edgeNum; // 圖的頂點(diǎn)數(shù)和邊數(shù)
    	VNode adjMuList[verNum];
    } AMLGraph; 
    
二、代碼/算法
  1. 遍歷/搜索
    • DFS實(shí)現(xiàn)
      #define MaxVertexNum 100  // 圖中節(jié)點(diǎn)數(shù)目的最大值
      bool visited[MaxVertexNum];  // 訪問(wèn)標(biāo)記數(shù)組
      vector<int> G[MaxVertexNum];  // 鄰接表
      int N;  // 節(jié)點(diǎn)個(gè)數(shù)
      
      // 對(duì)圖G進(jìn)行深度優(yōu)先遍歷,訪問(wèn)函數(shù)為visit()
      void DFSTraverse(){
      	for (int v=0; v<N; v++)  // 初始化
      		visited[v] = false;
      	for (int v=0; v<N; v++){
      		if (!visited[v])
      			DFS(v);
      	}
      }
      
      void DFS(int v){
      	visit(v);  // 訪問(wèn)節(jié)點(diǎn)v
      	visited[v] = true;  // 設(shè)訪問(wèn)標(biāo)記為真
      	for (int w:G[v])
      		if (!visited[w])  // w為u的尚未訪問(wèn)的鄰接節(jié)點(diǎn)
      			DFS(w);
      }
      
    • BFS實(shí)現(xiàn)(要用到隊(duì)列)
      #include <iostream>
      #include <queue>
      #include <vector>
      using namespace std;
      #define MaxVertexNum 100
      
      vector<int> graph[MaxVertexNum];
      bool visited[MaxVertexNum];
      
      void BFS(int start){
      	queue<int> q;
      	q.push(start);  // 將起點(diǎn)push進(jìn)隊(duì)列
      	visited[start] = true;  // 標(biāo)記起點(diǎn)已被訪問(wèn)
      
      	while (!q.empty()){   // 當(dāng)隊(duì)列不空時(shí)進(jìn)行循環(huán) 
      		int currNode = q.front();
      		q.pop();
      
      		visit(currNode);
      		for (auto adjNode : graph[currNode]){
      			if (!visited[adjNode]){
      				visited[adjNode] = true;
      				q.push(adjNode);  // 將未被訪問(wèn)的相鄰節(jié)點(diǎn)加入隊(duì)列中
      			}
      		}
      	}
      }
      
  2. 最小生成樹(shù)
    • Prim算法(ACE:不要求記憶)
    • Kruskal算法(ACE:不要求掌握,理解并查集在Kruskal中的作用即可)
  3. 最短路徑
    • Dijkstra算法
    • Floyd算法
  4. 拓?fù)渑判蛩惴ǎˋCE:??歼x擇題)
  5. 關(guān)鍵路徑算法 (ACE:??歼x擇題)
  6. 并查集
三、一些題目

第七章 圖論,數(shù)據(jù)結(jié)構(gòu)代碼相關(guān),圖論
1)無(wú)向圖
2)

typedef struct{
	unsigned int ID, IP;
} LinkNode;

typedef struct{
	unsigned int Prefix, Mask;
} NetNode;

typedef struct ArcNode{
	int Flag;  // Flag=1為L(zhǎng)ink, Flag=2為Net
	union{
		LinkNode Lnode;
		NetNode Nnode;
	} LinkORNet;
	unsigned int Metric;
	struct ArcNode *next;
} ArcNode; 

typedef struct HNode{
	unsigned int RouterID;
	ArcNode *LN_link;
	sturct HNode *next;
}HNode; // 表頭節(jié)點(diǎn)

第七章 圖論,數(shù)據(jù)結(jié)構(gòu)代碼相關(guān),圖論
3)第七章 圖論,數(shù)據(jù)結(jié)構(gòu)代碼相關(guān),圖論文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-631606.html

到了這里,關(guān)于第七章 圖論的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu) | 第七章:數(shù)組和矩陣 | 行主映射和列主映射 | 稀疏矩陣

    數(shù)據(jù)結(jié)構(gòu) | 第七章:數(shù)組和矩陣 | 行主映射和列主映射 | 稀疏矩陣

    7.1.1 抽象數(shù)據(jù)類(lèi)型 7.1.2 C++數(shù)組的索引 K維數(shù)組的索引(或下標(biāo)) [ i 1 ] [ i 2 ] [ i 3 ] . . . [ i k ] [i_1][i_2][i_3]...[i_k] [ i 1 ? ] [ i 2 ? ] [ i 3 ? ] ... [ i k ? ] k維數(shù)組創(chuàng)建: int score [ u 1 ] [ u 2 ] [ u 3 ] . . . [ u k ] [u_1][u_2][u_3]...[u_k] [ u 1 ? ] [ u 2 ? ] [ u 3 ? ] ... [ u k ? ] ( u i u_i u i ?

    2024年01月16日
    瀏覽(65)
  • 第七章 圖論

    第七章 圖論

    第七章 圖論 一、數(shù)據(jù)結(jié)構(gòu)定義 圖的鄰接矩陣存儲(chǔ)法 圖的鄰接表存儲(chǔ)法 把所有節(jié)點(diǎn)存儲(chǔ)為節(jié)點(diǎn)數(shù)組,每個(gè)節(jié)點(diǎn)里有自己的數(shù)據(jù)和一個(gè)邊指針,這個(gè)邊指針相當(dāng)于一個(gè)鏈表的頭指針,這個(gè)鏈表里存放所有與這個(gè)節(jié)點(diǎn)相連的邊,邊里存放該邊指向的節(jié)點(diǎn)編號(hào)和下一條邊指針 圖的

    2024年02月14日
    瀏覽(78)
  • 《HeadFirst設(shè)計(jì)模式(第二版)》第七章代碼——外觀模式

    《HeadFirst設(shè)計(jì)模式(第二版)》第七章代碼——外觀模式

    代碼文件目錄: ?Subsystem: Amplifier PopcornPopper Projector Screen StreamPlayer TheaterLights HomeTheaterFacade HomeTheaterTestDrive notes.txt

    2024年02月13日
    瀏覽(28)
  • 第七章 文件和數(shù)據(jù)格式化

    第七章 文件和數(shù)據(jù)格式化

    7.1 文件的使用 文件時(shí)存儲(chǔ)在輔助存儲(chǔ)器上的一組數(shù)據(jù)序列,可以包含任何數(shù)據(jù)內(nèi)容。概念上,文件是數(shù)據(jù)的集合和抽象。文件包括文本文件和二進(jìn)制文件兩種類(lèi)型。 7.1.1 文件的類(lèi)型 文本文件一般由單一特定編碼的字符組成,如UTF-8編碼,內(nèi)容容易統(tǒng)一展示和閱讀。 二進(jìn)制文

    2024年02月07日
    瀏覽(18)
  • 【數(shù)據(jù)庫(kù)復(fù)習(xí)】第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)

    【數(shù)據(jù)庫(kù)復(fù)習(xí)】第七章 數(shù)據(jù)庫(kù)設(shè)計(jì)

    數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(六個(gè)階段) ⒈需求分析階段 準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理) 最困難、最耗費(fèi)時(shí)間的一步 ⒉概念結(jié)構(gòu)設(shè)計(jì)階段 整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵 通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型 ⒊邏輯結(jié)構(gòu)設(shè)計(jì)階段 將概念結(jié)構(gòu)

    2024年02月08日
    瀏覽(39)
  • 大數(shù)據(jù)技術(shù)原理與應(yīng)用(第七章Zookeeper測(cè)試)

    一、選擇題 1.Zookeeper服務(wù)端默認(rèn)的對(duì)外服務(wù)端口是? A.8088 B.3888 C.2181 D.2888 2.Zookeeper生產(chǎn)環(huán)境一般采用多少臺(tái)機(jī)器組成集群? A.1 B.3 C.5 D.奇數(shù)臺(tái)(且大于1) 3.下面就Zookeeper的配置文件zoo.cfg的一部分,請(qǐng)問(wèn)initLimit表示的含義是? A.Leader-Follower初始通信時(shí)限 B.Leader-Follower同步通信時(shí)

    2024年02月12日
    瀏覽(23)
  • 《移動(dòng)互聯(lián)網(wǎng)技術(shù)》 第七章 數(shù)據(jù)存取: 掌握File、SharePreferences、SQLite和ContentProvider四種數(shù)據(jù)存取方式

    《移動(dòng)互聯(lián)網(wǎng)技術(shù)》 第七章 數(shù)據(jù)存取: 掌握File、SharePreferences、SQLite和ContentProvider四種數(shù)據(jù)存取方式

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個(gè)人主頁(yè)——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動(dòng)形象??簡(jiǎn)單易學(xué)!歡迎大家來(lái)踩踩~?? ?? 《IDEA開(kāi)發(fā)秘籍》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來(lái)一定的幫助??文章粗淺,敬

    2024年02月12日
    瀏覽(26)
  • 【期末不掛科-單片機(jī)考前速過(guò)系列P7】(第七章:11題速過(guò)串行口基本概念/結(jié)構(gòu)/工作方式/雙機(jī)通信例題)經(jīng)典例題盤(pán)點(diǎn)(帶圖解析)

    【期末不掛科-單片機(jī)考前速過(guò)系列P7】(第七章:11題速過(guò)串行口基本概念/結(jié)構(gòu)/工作方式/雙機(jī)通信例題)經(jīng)典例題盤(pán)點(diǎn)(帶圖解析)

    前言 大家好吖,歡迎來(lái)到 YY 滴單片機(jī)系列 ,熱烈歡迎! 本章主要內(nèi)容面向接觸過(guò)單片機(jī)的老鐵 主要內(nèi)容含: 歡迎訂閱 YY 滴C++專欄!更多干貨持續(xù)更新!以下是傳送門(mén)! YY的《C++》專欄 YY的《C++11》專欄 YY的《Linux》專欄 YY的《數(shù)據(jù)結(jié)構(gòu)》專欄 YY的《C語(yǔ)言基礎(chǔ)》專欄 YY的《

    2024年02月02日
    瀏覽(96)
  • 第七章 函數(shù)矩陣

    第七章 函數(shù)矩陣

    和矩陣函數(shù)不同的是,函數(shù)矩陣本質(zhì)上是一個(gè)矩陣,是以函數(shù)作為元素的矩陣。 矩陣函數(shù)本質(zhì)上是一個(gè)矩陣,是以矩陣作為自變量的函數(shù)。 函數(shù)矩陣和數(shù)字矩陣的運(yùn)算法則完全相同。 不過(guò)矩陣的元素 a i j ( x ) a_{ij}(x) a ij ? ( x ) 需要是閉區(qū)間 [ a , b ] [a,b] [ a , b ] 上的實(shí)函數(shù)

    2024年02月04日
    瀏覽(21)
  • [JavaScript] 第七章 對(duì)象

    [JavaScript] 第七章 對(duì)象

    ??作者主頁(yè):青花鎖 ??簡(jiǎn)介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??、Java微服務(wù)架構(gòu)公號(hào)作者?? ??簡(jiǎn)歷模板、學(xué)習(xí)資料、面試題庫(kù)、技術(shù)互助 ??文末獲取聯(lián)系方式 ?? [Java項(xiàng)目實(shí)戰(zhàn)] 介紹Java組件安裝、使用;手寫(xiě)框架等 [Aws服務(wù)器實(shí)戰(zhàn)] Aws Linux服務(wù)器上操作nginx、git、JDK、Vue等 [Java微服務(wù)

    2024年02月02日
    瀏覽(61)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包