數據結構與算法-圖(緒論 圖論基本概念)

昨天我的的樹就分享完了,樹的概念很多吧,二叉樹,滿二叉樹,完全二叉樹,赫夫曼樹,孩子,雙親……多不?哈哈哈,這算不了什麼,我們接下來要看到的圖的概念才叫多,沒關係,勤奮和時間會讓你記住他們,內心只需要告訴自己,加油,我能行,就一定能學會圖。
不知道有沒有看過或者學過離散數學,如果學過,那麼恭喜啦,離散數學裏的圖論就是這一章的基礎,圖論學的還不錯的話,壓力就小了。
先介紹的是圖的定義,圖-V個頂點和E條邊組合成的集合,例如圖G(V,E),就是一個圖,我們在線性表的一對一,樹的一對多,到了圖這裏,就是多對多啦,也就是說,圖中任何兩個結點都有可能有關係,元素用頂點代替,兩頂點之間的邏輯關係用邊來表示,對於圖G(V,E),V是它的頂點的集合,E是它的邊的集合,注意在圖中,不允許沒有頂點,但是允許沒有邊。
下面介紹無向圖和有向圖,首先是無向圖,就是沒有方向的圖嘍,它的邊成爲無向邊,用無序偶對(vi,vj)。至於有向圖,它的邊成爲弧,弧是有方向的,弧的起點叫做弧尾,終點叫弧頭,只能是一個頂點指向另一個頂點,它的 弧用有序偶對<vi,vj>代表有vi->vj,是不可逆的。在圖中,如果沒有自己指向自己的邊和兩個頂點有重複邊,稱之爲簡單圖,我們接下來討論的圖都是簡單圖。
在無向圖中,如果任意兩個頂點之間都存在邊,則我們成這樣的無向圖爲無向完全圖,n個頂點完全無向圖有(n^2+n)/2條邊。
在有向圖中,如果任意一個有向圖的兩個頂點,之間都存在方向互反的兩天弧,我們稱這樣的有向圖爲完全有向圖,n個頂點的完全有向圖有n^2+n條弧。
又很少的邊的圖叫稀疏圖,相反很多的叫稠密圖,當然這個定義是模糊的,瞭解即可。
如果圖的邊或者弧上帶有數字,這個數字成爲邊的權值或者權重,一般表示距離或者耗費,帶權的圖稱之爲網圖。
一個圖的一部分叫做這個圖的子圖。
對於無向圖的一條邊(vi,vj),那麼vi和vj互稱鄰接點,如果一個頂點有x個頂點與他相連,這個x稱爲這個頂點的度。
至於有向圖類似,有向圖的一條弧<vi,vj>,則vi到vj相關聯,以頂點vi爲弧尾的頂點數目叫做vi的出度,同樣,vj頂點尾弧頭的頂點數目叫做vj的入度。
下面介紹路徑,路徑就是一個頂點到另一個頂點的邊或弧的數目,或者權值之和,第一個頂點到達的最後一個頂點是它本身的路徑叫做迴路或者環,如論序列不重複出現,那麼叫這條路徑爲簡單路徑,如果除了第一個頂點和最後一個頂點外,其餘頂點不重複的環叫做簡單換或者簡單迴路。
下面介紹連通圖,對於無向圖,從任何一個頂點出發,能夠到達圖內所有頂點的無向圖叫做連通圖。對於無向圖中的極大連通子圖成爲連通分量,三個注意點:1.要是子圖;2.子圖要是連通的;3.連通子圖必須含有極大頂點數;4.具有極大頂點數的連通子圖包含依附於這些頂點的所有邊。
對於有向圖,對於這個圖的任意的一對頂點都有路徑能把他們連通,稱這樣的有向圖爲強連通圖。有向圖中的極大連通子圖稱做有向圖的強連通分量。
下面介紹連通圖的生成樹:一個連通圖的生成樹是一個極小的連通子圖,它含有圖中全部的n個結點,但是隻有足以組成一棵樹的n-1條邊。至於生成樹怎樣生成森林,那就簡單了,隨意去掉幾條邊或者弧九城了幾棵樹,就構成了一片森林啦。
這結束了,啦啦啦,如果你看完了,說明你的內心非常強大,是的,枯燥無味,概念繁多,但是想想,學會的每個人,都是這樣一步一步過來的,圖的定義我學了三遍,如今又是第四遍了,孰能生巧,沒有過人的頭腦,那就多學習幾遍,可以這麼說,這些概念是基礎的基礎,往後的算法精妙無比,自然困難少不了,但是最美的花,總是藏在最多荊棘後面,加油!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章