1. 程式人生 > >數據結構(四)圖

數據結構(四)圖

對象 graph 存儲 減少 weight clas gree inline strong

數據結構(四)圖

1.圖的概念

1.1圖的定義:

圖是一個由頂點集合V和一個弧集R構成的數據結構。

ADT Graph { ? 數據對象V:V是具有相同特性的數據元素的集合,稱為頂點集。 ? 數據關系R: ? R = {VR} ? VR = {<v,w>|v,wV且P(v,w),<v,w>表示從v到w的弧,

謂詞P(v,w)定義了<v,w>的意義或信息 }

1.2 圖的重要術語

(1)無向圖:在一個圖中,如果任意兩個頂點構成的偶對(v,w)∈E 是無序的,即頂點之間的連線是沒有方向的,則稱該圖為無向圖。

(2)有向圖:在一個圖中,如果任意兩個頂點構成的偶對(v,w)∈E 是有序的,即頂 點之間的連線是有方向的,則稱該圖為有向圖。

(3)無向完全圖:在一個無向圖中,如果任意兩頂點都有一條直接邊相連接,則稱該圖 為無向完全圖。在一個含有 n 個頂點的無向完全圖中,有 n(n-1)/2 條邊。

(4)有向完全圖:在一個有向圖中,如果任意兩頂點之間都有方向互為相反的兩條弧相 連接,則稱該圖為有向完全圖。在一個含有 n 個頂點的有向完全圖中,有 n(n-1)條邊。

(5)稠密圖、稀疏圖:若一個圖接近完全圖,稱為稠密圖;稱邊數很少(e<nlogn)的圖為稀疏圖。

(6)頂點的度、入度、出度: 頂點的度(degree)是指依附於某頂點 v 的邊數,通常記為 TD (v)。 在有向圖中,要區別頂點的入度與出度的概念。頂點 v 的入度是指以頂點為終點的弧的 數目,記為 ID (v);頂點 v 出度是指以頂點 v 為始點的弧的數目,記為 OD (v)。 TD (v)=ID (v)+OD (v)。 可以證明,對於具有 n 個頂點、e 條邊的圖,頂點 vi的度 TD (vi)與頂點的個數以及邊的 數目滿足關系:

(()

(7)邊的權、網圖:與邊有關的數據信息稱為權(weight)。在實際應用中,權值可以有 某種含義。邊上帶權的圖稱為網圖或網絡(network)。如果邊是有方向的帶權圖,則就是一 個有向網圖。

(8)路徑、路徑長度:頂點 vp到頂點 vq之間的路徑(path)是指頂點序列 vp,vi1,vi2, …, vim,vq.。其中,(vp,vi1),(vi1,vi2),…,(vim,.vq)分別為圖中的邊。 路徑上邊的數目稱為路徑長度。

(9)簡單路徑、簡單回路:序列中頂點不重復出現的路徑稱為簡單路徑。除第一個頂點 與後一個頂點之外,其他頂點不重復出現的回路稱為簡單回路,或者簡單環。

(10)子圖:對於圖 G=(V,E),G’=(V’,E’),若存在 V’是 V 的子集 ,E’是 E 的子 集,則稱圖 G’是 G 的一個子圖。

(11)連通圖、連通分量:在無向圖中,如果從一個頂點 vi到另一個頂點 vj(i≠j)有路徑, 則稱頂點 vi和 vj是連通的。如果圖中任意兩頂點都是連通的,則稱該圖是連通圖。無向圖的 極大連通子圖稱為連通分量。

(12)強連通圖、強連通分量:對於有向圖來說,若圖中任意一對頂點 vi 和 vj(i≠j)均有 從一個頂點 vi到另一個頂點 vj有路徑,也有從 vj到 vi的路徑,則稱該有向圖是強連通圖。有 向圖的極大強連通子圖稱為強連通分量。

(13)生成樹:所謂連通圖 G 的生成樹,是 G 的包含其全部 n 個頂點的一個極小連通子 圖。它必定包含且僅包含 G 的 n-1 條邊。在生成樹中添加任意一條屬於原圖中的邊必定會產 生回路,因為新添加的邊使其所依附的兩個頂點之間有了第二條路徑。若生成樹中減少任意 一條邊,則必然成為非連通的。

(14)生成森林:在非連通圖中,由每個連通分量都可得到一個極小連通子圖,即一棵 生成樹。這些連通分量的生成樹就組成了一個非連通圖的生成森林。

2.圖的存儲及基本操作

數據結構(四)圖