資料結構之圖(儲存結構、遍曆)鄰接矩陣,鄰接表_graph

來源:互聯網
上載者:User

一、圖的儲存結構

1.1 鄰接矩陣

    圖的鄰接矩陣儲存方式是用兩個數組來表示圖。一個一維數組儲存圖中頂點資訊,一個二維數組(鄰接矩陣)儲存圖中的邊或弧的資訊。

    設圖G有n個頂點,則鄰接矩陣是一個n*n的方陣,定義為:

    

    看一個執行個體,下圖左就是一個無向圖。

    

    從上面可以看出,無向圖的邊數組是一個對稱矩陣。所謂對稱矩陣就是n階矩陣的元滿足aij = aji。即從矩陣的左上方到右下角的主對角線為軸,右上方的元和左下角相對應的元全都是相等的。

    從這個矩陣中,很容易知道圖中的資訊。

    (1)要判斷任意兩頂點是否有邊無邊就很容易了;

    (2)要知道某個頂點的度,其實就是這個頂點vi在鄰接矩陣中第i行或(第i列)的元素之和;

    (3)求頂點vi的所有鄰接點就是將矩陣中第i行元素掃描一遍,arc[i][j]為1就是鄰接點;

    而有向圖講究入度和出度,頂點vi的入度為1,正好是第i列各數之和。頂點vi的出度為2,即第i行的各數之和。

    若圖G是網圖,有n個頂點,則鄰接矩陣是一個n*n的方陣,定義為:

    

    這裡的wij表示(vi,vj)上的權值。無窮大表示一個電腦允許的、大於所有邊上權值的值,也就是一個不可能的極限值。下面左圖就是一個有向網圖,右圖就是它的鄰接矩陣。

    

    那麼鄰接矩陣是如何?圖的建立的呢。代碼如下。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.