1. 程式人生 > >圖的基本概念;圖的儲存表示:鄰接矩陣、鄰接表

圖的基本概念;圖的儲存表示:鄰接矩陣、鄰接表

  • 無向圖 邊(vi,vj)
  • 有向圖 弧
有向完全圖和無向完全圖
  • 有向圖最多有n(n-1)條邊,且有n(n-1)條邊的有向圖為有向完全圖。
  • 無向圖最多有n(n-1)/2條邊,且有n(n-1)/2條邊的有向圖為無向完全圖。

鄰接矩陣(陣列儲存)

  • 無權:0、1
  • 帶權:權值,無限符號
  • 對於有向圖,頂點Vi的出度是鄰接矩陣第i行之和,入度是第i列之和。
    這裡寫圖片描述

鄰接表(連結串列儲存)

#define MAX_VERTEX_NUM 20
typedef struct ArcNode{
    int adjvex;
    struct ArcNode *nextarc;
    InfoType *info;
}ArcNode;
typedef
struct VNode{ VertexType data; ArcNode *firstarc; }VNode , AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum; int kind; }ALGraph;

這裡寫圖片描述

相關推薦

基本概念儲存表示鄰接矩陣鄰接

無向圖 邊(vi,vj) 有向圖 弧 有向完全圖和無向完全圖 有向圖最多有n(n-1)條邊,且有n(n-1)條邊的有向圖為有向完全圖。 無向圖最多有n(n-1)/2條邊,且有n(n-1)/2條邊

的兩種儲存結構及四種形態——鄰接矩陣鄰接有向無向有向網無向網。

宣告: 程式碼中有大量的註釋,所以此處就不再作出大量的解釋了。 一 :鄰接矩陣儲存結構 1.首先是各種型別與巨集的定義: 1 #include <iostream> 2 using namespace std; 3 //無窮大 4 #define INFINITY IN

儲存結構(鄰接矩陣鄰接十字連結串列鄰接多重)詳解

上篇部落格講到,圖狀結構是非常複雜的結構,圖也是非常複雜的,所以圖的儲存就是一個非常重要的部分,因為我們不僅要表示頂點集,還要表示邊集,如何完整準確的表示圖呢,接下來,給大家講解四種圖的儲存方式。 一、鄰接矩陣法 1、定義 我們用一個二維陣列存放頂點間關係(邊或弧)的資料,這個二維陣

【第十一週】資料結構之自建演算法庫——及其儲存結構(鄰接矩陣鄰接

#include <stdio.h> #include <malloc.h> #include "hhh.h" //功能:由一個反映圖中頂點鄰接關係的二維陣列,構造出用鄰接矩陣儲存的圖 //引數:Arr - 陣列名,由於形式引數為二維陣列時必須給出每行的元素個數,在此將引數Arr宣告

資料結構作業——儲存及遍歷(鄰接矩陣鄰接+DFS遞迴非遞迴+BFS)

鄰接矩陣存圖 /* * @Author: WZY * @School: HPU * @Date: 2018-11-02 18:35:27 * @Last Modified by: WZY * @Last Modified time: 2018-11-0

8【資料結構】鄰接矩陣鄰接無向

一、鄰接矩陣無向圖 1、基本定義 #define MAX 10 class MatrixUDG { private: char mVexs[MAX]; //頂點集合 int mVexNum; //頂點

9【資料結構】鄰接矩陣鄰接有向

一、鄰接矩陣有向圖 1、基本定義 #define MAX 10 class MatrixDG { private: char mVexs[MAX]; // 頂點集合 int mVexNum; // 頂點數

6-2 鄰接儲存的廣度優先遍歷 (20 分)第七章----基本概念-計算機17級

6-2 鄰接表儲存圖的廣度優先遍歷 (20 分) 試實現鄰接表儲存圖的廣度優先遍歷。 函式介面定義: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ); 其中LGraph是鄰接表儲存的圖,定

6-1 鄰接矩陣儲存的深度優先遍歷 (20 分) 第七章----基本概念-計算機17級

6-1 鄰接矩陣儲存圖的深度優先遍歷 (20 分) 試實現鄰接矩陣儲存圖的深度優先遍歷。 函式介面定義: void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) ); 其中MGraph是鄰接矩陣儲存的圖

第一章 基本概念儲存

   第一章      圖的基本概念和圖的儲存  本篇是學習《圖論演算法理論,實現及應用》的學習筆記的第一章,概念部分  1.1圖的基本概念   1圖是由定點集合和頂點之間的二元關係集合(即邊的集合或者弧的集合)組成的資料結構,通常用G(V,E)表示。   頂點集合(V

6-1 鄰接矩陣儲存的深度優先遍歷 (20 分) 第七章----基本概念-計算機17級

6-1 鄰接矩陣儲存圖的深度優先遍歷 (20 分) 試實現鄰接矩陣儲存圖的深度優先遍歷。 函式介面定義: void DFS( MGraph Graph, Vertex V, void (*Visi

基本概念

一個圖由頂點集V和邊集E組成。每條邊是一個點對,其中 有向圖:點對有序,即和是不同的 鄰接:頂點v和w鄰接當且僅當,在無向圖中,v和w鄰接意味著w和v也鄰接 路徑:一個頂點序列,使得,路徑長是路徑上的邊數,等於 環:圖含有一個節點到它自身的一條邊,路徑就是一個環 簡單路徑:所有頂

第七章----基本概念 選擇題

2-1 若無向圖G =(V,E)中含10個頂點,要保證圖G在任何情況下都是連通的,則需要的邊數最少是: (3分) 45 37 36 9 答案:2. 2-2

儲存結構鄰接矩陣鄰接(稠密與稀疏

稠密圖用 鄰接矩陣儲存 稀疏圖用 鄰接表儲存 原因: 鄰接表只儲存非零節點,而鄰接矩陣則要把所有的節點資訊(非零節點與零節點)都儲存下來。 稀疏圖的非零節點不多,所以選用鄰接表效率高,如果選用鄰接矩陣則效率很低,矩陣中大多數都會是零節點! 稠密圖的非零界點多,零節點少,選

資料結構——概念儲存鄰接矩陣鄰接

圖的概念 為什麼要有圖 在學習圖之前我們應該學習了,線性表和樹;但是我們有沒有考慮過為什麼要有圖,線性表和圖的侷限性優勢上面呢? 線性表他僅僅侷限於一個直接前驅和一個直接後繼的關係。 樹呢?樹也僅僅只能有一個直接前驅也就是父節點。 那麼這種多對

二分基本概念+二分的最大匹配問題(匈牙利演算法)

       今天學了二分圖的最大匹配,其中的匈牙利演算法。。哦不,其實遠不止這個,還有後面的一系列KM、開花樹啊什麼的演算法。反正又是一個異常懵逼的一天。。。 我覺得應該是上課前沒有稍微預習一下這個演算法是什麼,瞭解個大概,導致上課總是老師講到後面了,我卻還在糾結前面的內

UML 九種基本概念

序列圖:反映若干物件之間的動態協作關係,在時間軸上,物件之間是如何互動的。   圖例: 物件圖:表示類的物件例項。通常用來示例一個複雜的類圖。 用例圖(user-case diagram):用來定義系統的功能需求。   圖例: 類圖(class dia

無向表示鄰接矩陣鄰接

這裡將一個無向圖用鄰接表和鄰接矩陣表示。 輸入:頂底個數n,圖中的各個邊(用兩個頂點表示)。 輸出:這個無線圖的鄰接矩陣和鄰接表,其中鄰接表中的連結按元素大小升序排列。 先給出一個例子說明。假設有無向圖如下,則其鄰接矩陣和鄰接表如提示框中所示(其實就是下面程式的輸出)。

數據結構——基本概念

exc dir 圖的存儲結構 來看 矩陣 部分 urn builder hide 線性表中的元素是“一對一”的關系,樹中的元素是“一對多”的關系,本章所述的圖結構中的元素則是“多

線程的幾個主要概念----線程間通信線程死鎖線程控制掛起停止和恢復(線程同步的5種方式)

推薦 處理 本地變量 之間 管理 zed 空間 get ted (一)線程同步(5種同步方式) 1.同步方法--->有synchronized關鍵字修飾的方法。(Java的每個內置對象都有一個內置鎖,當用synchronized修飾方法--->內置鎖保護整個方法