數據結構課上筆記14

圖是一種: ? 數據元素間存在多對多關系的數據結構 ? 加上一組基本操作構成的抽象數據類型。

圖 (Graph) 是一種復雜的非線性數據結構,由頂點集合及頂點間的關系(也稱弧或邊)集合組成。可以表示為: G=(V, VR) ?

其中 V 是頂點的有窮非空集合;

VR 是頂點之間 ? 關系的有窮集合,也叫做弧或邊集合。

弧是頂點的有序對,邊是頂點的無序對。

?

特點:(相對于線性結構)

頂點之間的關系是任意的?

圖中任意兩個頂點之間都可能相關

頂點的前驅和后繼個數無限制

?

相關概念:

?

頂點(Vertex):圖中的數據元素。線性表中我們把數據元素叫元素,樹中將數據元素叫結點。

邊:頂點之間的邏輯關系用邊來表示,邊集可以是空的。

?

無向邊(Edge):若頂點V1到V2之間的邊沒有方向,則稱這條邊為無向邊。

無向圖(Undirected graphs):圖中任意兩個頂點之間的邊都是無向邊。(A,D)=(D,A)

無向圖中邊的取值范圍:0≤e≤n(n-1)/2

有向邊:若從頂點V1到V2的邊有方向,則稱這條邊為有向邊,也稱弧(Arc)。用<V1,V2>表示,V1為狐尾(Tail),V2為弧頭(Head)。(V1,V2)≠(V2,V1)。

有向圖(Directed graphs):圖中任意兩個頂點之間的邊都是有向邊。

有向圖中弧的取值范圍:0≤e≤n(n-1)

???注意:無向邊用“()”,而有向邊用“< >”表示。

?

簡單圖:圖中不存在頂點到其自身的邊,且同一條邊不重復出現。

無向完全圖:無向圖中,任意兩個頂點之間都存在邊。

有向完全圖:有向圖中,任意兩個頂點之間都存在方向互為相反的兩條弧。

稀疏圖:有很少條邊。

稠密圖:有很多條邊。

?

鄰接點:若 (v, v′) 是一條邊,則稱頂點 v 和 v′互為 鄰接點,或稱 v 和 v′相鄰接;稱邊 (v, v′) 依附于頂點 v 和 v′,或稱 (v, v′) 與頂點 v 和 v′ 相關聯。

?

權(Weight):與圖的邊或弧相關的數。

網(Network):帶權的圖。

子圖(Subgraph):假設G=(V,{E})和G‘=(V',{E'}),如果V'包含于V且E'包含于E,則稱G'為G的子圖。

?

?入度:有向圖中以頂點 v 為頭的弧的數目稱為 v 的入度,記為:ID(v)。 ?

出度:有向圖中以頂點 v 為尾的弧的數目稱為 v 的出度,記為:OD(v)。

度(Degree):無向圖中,與頂點V相關聯的邊的數目。有向圖中,入度表示指向自己的邊的數目,出度表示指向其他邊的數目,該頂點的度等于入度與出度的和。

?

回路(環):第一個頂點和最后一個頂點相同的路徑。

簡單路徑:序列中頂點(兩端點除外)不重復出現的路徑。?

簡單回路(簡單環):前后兩端點相同的簡單路徑。

路徑的長度:一條路徑上邊或弧的數量。

?

連通:從頂點 v 到 v′ 有路徑,則說 v ?和 v′ 是連通的。

連通圖:圖中任意兩個頂點都是連通的。

連通分量:無向圖的極大連通子圖(不存在包含它的 更大的連通子圖);

任何連通圖的連通分量只有一個,即其本身;非連通圖有多個連通分量(非連通圖的每一個連通部分)。

強連通圖: 任意兩個頂點都連通的有向圖。?

強連通分量:有向圖的極大強連通子圖;任何強連通 圖的強連通分量只有一個,即其本身;非強連通圖有多個 強連通分量。

?

生成樹:所有頂點均由邊連接在一起但不存在回路的圖。(n個頂點n-1條邊)

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445480.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kaggle(03)-自行車租賃預測問題(基礎版)

文章目錄問題描述&#xff1a;問題解決分析問題&#xff1a;解決問題第一步&#xff1a;讀取原始數據第二步&#xff1a;觀察原始數據第三步&#xff1a;原始數據的可視化第四步&#xff1a;數據的預處理時間屬性的分解第五步&#xff1a;數據的特征提取特征生成特征選擇第六步…

二叉樹序列化/反序列化

二叉樹被記錄成文件的過程&#xff0c;為二叉樹的序列化 通過文件重新建立原來的二叉樹的過程&#xff0c;為二叉樹的反序列化 設計方案并實現。 &#xff08;已知結點類型為32位整型&#xff09; 思路&#xff1a;先序遍歷實現。 因為要寫入文件&#xff0c;我們要把二叉樹…

機器學習總結(17)-XGBoost

文章目錄lecture17&#xff1a;XGBoost(eXtreme Gradient Boosting)目錄1. XGBoost的基本信息2. XGBoost與GBDT的異同點3. XGBoost的原理3.1定義樹的復雜度3.2 分裂節點3.3 自定義損失函數4. XGBoost的使用lecture17&#xff1a;XGBoost(eXtreme Gradient Boosting) 目錄 1. …

C++基礎學習(01)--(介紹,環境配置,基本語法,注釋)

文章目錄目錄一. c介紹二. c開發環境到的配置三. c基本語法四. c注釋目錄 一. c介紹 C 是一種靜態類型的、編譯式的、通用的、大小寫敏感的、不規則的編程語言&#xff0c;支持過程化編程、面向對象編程和泛型編程。 C 被認為是一種中級語言&#xff0c;它綜合了高級語言和低…

《Head First設計模式》讀書筆記_第一章

策略模式 例&#xff1a;設計一個模擬鴨子游戲&#xff0c;游戲中有各種鴨子&#xff0c;一邊戲水一邊嘎嘎叫。 所以學習設計模式前&#xff0c;我們最先想到的就是設置一個超類&#xff0c;并讓其他子類去繼承這個類&#xff0c;UML圖如下&#xff1a; * * 但是&#xff0…

根據數組建立平衡二叉搜索樹

它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1&#xff0c;并且左右兩個子樹都是一棵平衡二叉&#xff08;搜索&#xff09;樹。 二分&#xff1a;用有序數組中中間的數生成搜索二叉樹的頭節點&#xff0c;然后對數組的左右部分分別生成左右子樹即可&#xff08;重復…

C++基礎學習(02)--(數據類型,變量類型,變量作用域,常量,修飾符類型)

文章目錄目錄一. 數據類型C 中的數據類型typedefenumeration枚舉類型c中變量類型二.變量作用域三.常量四.修飾符類型目錄 一. 數據類型 C 中的數據類型 使用編程語言進行編程時&#xff0c;需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內存位置。這意味著&a…

commons-lang常用方法

maven引入 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.9</version></dependency> 跟java.lang這個包的作用類似&#xff0c;Commons Lang這一組API也是提供一些基…

c++基礎學習(03)--(存儲類,運算符,循環,判斷)

文章目錄目錄一.存儲類二.運算符三.循環whilefor四.判斷目錄 一.存儲類 可見static存儲類修飾之后&#xff0c;i的值沒有從頭開始&#xff0c;而是從上一次的結果中保留下來 #include <iostream>using namespace std; class Data { public:Data(){}~Data(){}void show()…

皇后問題

八皇后問題是一個以國際象棋為背景的問題&#xff1a;如何能夠在 88 的國際象棋棋盤上放置八個皇后&#xff0c;使得任何一個皇后都無法直接吃掉其他的皇后&#xff1f;為了達到此目的&#xff0c;任兩個皇后都不能處于同一條橫行、縱行或斜線上。八皇后問題可以推廣為更一般的…

c++基礎學習(04)--(函數、數字、數組、字符串)

文章目錄目錄1.函數2.數字3.字符串4.數組目錄 1.函數 #include <iostream> #include <limits>using namespace std;void swap(int *x , int *y);int main(){int a 100 , b200;cout<<"交換前:"<<"a is :"<<a<<"…

【精品計劃0】藍橋杯 摔手機

原題描述&#xff1a; x星球的居民脾氣不太好&#xff0c;但好在他們生氣的時候唯一的異常舉動是&#xff1a;摔手機。 各大廠商也就紛紛推出各種耐摔型手機。x星球的質監局規定了手機必須經過耐摔測試&#xff0c;并且評定出一個耐摔指數來&#xff0c;之后才允許上市流通。 …

數據結構課上筆記15

圖的存儲 多重鏈表&#xff1a;完全模擬圖的樣子&#xff0c;每個節點內的指針都指向該指向的節點。 節點結構內指針數為度 缺點&#xff1a;浪費空間、不容易操作 數組表示法&#xff08;鄰接矩陣表示法&#xff09; 可用兩個數組存儲。其中一個 一維數組存儲數據元素&#…

c++基礎學習(05)--(指針,引用)

文章目錄目錄1.指針2.引用目錄 1.指針 #include <iostream>using namespace std;int main () {int var1;char var2[10];cout << "var1 變量的地址&#xff1a; ";cout << &var1 << endl;cout << "var2 變量的地址&#xff…

由旅行商問題認識何為狀態壓縮

動態規劃 動態規劃(dynamic programming)是運籌學的一個分支&#xff0c;是求解決策過程(decision process)最優化的數學方法。20世紀50年代初美國數學家R.E.Bellman等人在研究多階段決策過程(multistep decision process)的優化問題時&#xff0c;提出了著名的最優化原理(pri…

c++基礎學習(06)--(時間,輸入輸出,數據結構)

文章目錄目錄1.時間2.輸入輸出數據結構目錄 1.時間 當前日期和時間 下面的實例獲取當前系統的日期和時間&#xff0c;包括本地時間和協調世界時&#xff08;UTC&#xff09;。 #include <iostream> #include <ctime>using namespace std;int main( ) {// 基于當前…

Abstract Self-Balancing Binary Search Tree

二叉搜索樹 二叉查找樹&#xff08;Binary Search Tree&#xff09;&#xff0c;&#xff08;又&#xff1a;二叉搜索樹&#xff0c;二叉排序樹&#xff09;它或者是一棵空樹&#xff0c;或者是具有下列性質的二叉樹&#xff1a; 若它的左子樹不空&#xff0c;則左子樹上所有結…

AVL Tree

前言 希望讀者 了解二叉搜索樹 了解左旋右旋基本操作 https://blog.csdn.net/hebtu666/article/details/84992363 直觀感受直接到文章底部&#xff0c;有正確的調整策略動畫&#xff0c;自行操作。 二叉搜索樹 二叉查找樹&#xff08;Binary Search Tree&#xff09;&a…

c++基礎學習(07)--(類)

文章目錄目錄類與對象1.類成員函數2.類訪問修飾符3.構造函數與析構函數4.拷貝構造函數5. 友元函數6.內聯函數7.this指針8.指向類的指針9.類的靜態成員目錄 類與對象 #include <iostream>using namespace std;class Box {public:double length; // 長度double breadth;…

【大總結1】數據結構與傳統算法總結

由于時間和水平有限&#xff0c;肯定有錯誤或者寫得不好的地方 歡迎在文章下評論指出。 涉及語言&#xff1a; py3&#xff1a;注重算法本身的知識 c/c&#xff1a;實現基礎數據結構和算法 java&#xff1a;實現較復雜數據結構 一、概述 c語言知識體系 算法體系參考 課上筆…