數據結構——圖相關基本概念

在線性表中,數據元素之間是被串聯起來的,僅有線性關係,每一個數據元素只有一個直接前驅和一個直接後繼。在樹形結構中,數據元素之間有着明顯的層次關係,而且每一層上的數據元素可能和下一層中的多個元素相關,但只能和上一層中的一個元素相關。微信

但是現實生活中,好多關係再也不是一對一或一對多,好比人和人之間的關係,會互相認識,就要考慮多對多的狀況。這就是今天要介紹的——圖。數據結構

圖是一種較線性表和樹更加複雜的數據結構,在圖形結構中,結點之間的關係能夠是任意的,圖中任意兩個數據元素均可能相關。先看個圖:cdn

圖是由頂點的有窮非空集合和頂點之間的邊的集合組成,一般表示爲:G(V,E),其中G表示一個圖,V是圖G中的頂點的集合,E是G中邊的集合。blog

對於圖的定義咱們須要注意:it

  • 線性表中的數據元素叫元素,樹中將數據元素叫作結點,在圖中數據元素叫作頂點。
  • 線性表中能夠沒有數據元素,稱爲空表。樹中能夠沒有結點,叫作空樹。在圖結構中,不容許沒有頂點,在定義中,V表示有窮的非空集合。
  • 線性表中,相鄰的數據元素之間具備線性關係,樹結構中,相鄰兩層的結點具備層次關係,而圖中,任意兩個頂點之間都有可能存在關係,頂點之間的邏輯關機用邊來表示,注意邊集能夠爲空。

各類圖定義

無向邊:若頂點vi到vj之間的邊沒有方向,則稱這條邊爲無向邊,用無序偶對(vi,vj)來表示。若是圖中任意兩個頂點之間的邊都是無向邊,則稱該圖爲無向圖,如圖:io

**有向邊:若從頂點vi到vj的邊有方向,則稱這條邊爲有向邊,也稱爲弧,用有序偶< vi,vj >來表示,vi稱做弧尾,vj稱做弧頭。若是圖中任意兩個頂點之間的邊都是有向邊,則稱該圖爲有向圖。**有向邊用「<>」表示,注意它是有順序的,第一個爲弧尾,第二個爲弧頭,不能顛倒。class

**在圖中,若不存在頂點到其自身的邊,且同一條邊不重複出現,則稱這樣的圖爲簡單圖。**咱們以後說到的都是簡單圖。下面兩個圖就不是簡單圖:lazyload

**在無向圖中,若是任意的兩個頂點之間都存在邊,則稱該圖爲無向徹底圖。*含有n個頂點的無向徹底圖有n(n-1)/2條邊。以下圖:gc

在有向圖中,若是任意兩個頂點之間都存在互爲相反的兩條弧,則稱該圖爲有向徹底圖。含有n個頂點的有向徹底圖有n*(n-1)條弧,以下圖:im

由以上能夠得出這樣的結論,對於具備n個頂點和e條邊數的圖,無向圖0<=e<=n(n-1)/2,有向圖0<=e<=n(n-1)

有不多條邊或弧的圖稱爲稀鬆圖,反之稱爲稠密圖。

有些圖的邊或弧具備與它相關的數字,這種與圖的邊或弧相關的數叫作權這種帶權的圖一般稱爲網。以下圖:

圖中頂點間存在路徑,兩頂點存在路徑則說明是連通的,若是路徑最終回到起始點則稱爲,當中不重複的叫簡單路徑。若任意兩頂點都是連通的,則圖就是連通圖,有向則稱爲強連通圖。圖中有子圖,若子圖極大連通這就是連通份量,有向的則稱爲強連通份量

更多精彩內容,關注個人微信公衆號——Android機動車

相關文章
相關標籤/搜索