標籤:

浙江大學-數據結構-小白專場:C語言實現如何建立圖-6.5.2

MGraph初始化

初始化一個有VertexNum個頂點但沒有邊的圖

也就是先把頂點建立起來,一個圖裡面可以一條邊都沒有,但是不能一個頂點都沒有,那麼在給定了頂點的個數以後,我們就可以實現這樣一個函數叫CreateGraph,怎麼做呢?非常簡單,我們先聲明一個圖的結點,這個圖的結點一旦聲明以後呢,那個矩陣的空間就已經有了,同時我們還有了Nv和Ne,既然這個頂點的個數給定了,我們把這個數字給Nv,現在呢,我們初始化的是一個沒有邊的圖,什麼叫沒有邊,也就是我們要把這個圖裡面的鄰接矩陣任一一對頂點V和W之間的邊都定義為0,表示它們之間沒有邊,

如果是一個有權圖的話呢,可能我們會把它初始化成INFINITY,你自己定義一個很大很大的數,代表無窮大,那就表示這兩個頂點之間是沒有邊的,這個當然就對應一個雙重的循環,一個V,一個W,那麼這裡頭我們默認頂點的編號是從0開始的,一直到Nv-1,可能呢,一開始你不太習慣,通常我們的循環變數都是用i和j的,為什麼在這裡要用V和W呢,在前面把V和W定義為頂點類型

實際上這個頂點類型,Vertex就是整型,因為我們是用頂點下標來表示一個頂點的,所以它就是整型,但是我在這要額外申明一下的一個好處就是,要把它跟真正的整型變數區分開來,比如說我們這個VertexNum這個頂點數,它真的是一個整數,而當我們在說V和W的時候,我們不是在說兩個整數,我們在說的是兩個頂點,所以儘管表面上看起來它們都是整型,是一回事,但是本質上它們是不同的東西,所以作為專業的程序員,在這區分一下是有好處的,當然最後做完了這個初始化以後,不要忘了要把這個建成的Graph return回去

推薦閱讀:

浙江大學-數據結構-選講Complete Binary Search Tree-7.3.1
浙江大學-數據結構-圖:小白專場:C實現哈利波特的考試-7.2.2
九章演算法 | Facebook面試題:最大平均值子數組2
SkipList的原理與實現
浙江大學-數據結構-圖:小白專場:C實現哈利波特的考試-7.2.3

TAG:數據結構 |