1樓:痴情鐲
用鄰接表表示圖進行深度優先遍歷時,通常採用棧來實現演算法。
鄰接表,儲存方法跟樹的孩子連結串列示法相類似,是一種順序分配和鏈式分配相結合的儲存結構。如這個表頭結點所對應的頂點存在相鄰頂點,則把相鄰頂點依次存放於表頭結點所指向的單向連結串列中。
對於無向圖來說,使用鄰接表進行儲存也會出現資料冗餘,表頭結點a所指連結串列中存在一個指向c的表結點的同時,表頭結點c所指連結串列也會存在一個指向a的表結點。
鄰接表相似類:
圖的鄰接表儲存方法跟樹的孩子連結串列示法相類似,是一種順序分配和鏈式分配相結合的儲存結構。如這個表頭結點所對應的頂點存在相鄰頂點,則把相鄰頂點依次存放於表頭結點所指向的單向連結串列中。如詞條概念圖所示,表結點存放的是鄰接頂點在陣列中的索引。
對於無向圖來說,使用鄰接表進行儲存也會出現資料冗餘,表頭結點a所指連結串列中存在一個指向c的表結點的同時,表頭結點c所指連結串列也會存在一個指向a的表結點。
鄰接表是圖的一種最主要儲存結構,用來描述圖上的每一個點。對圖的每個頂點建立一個容器(n個頂點建立n個容器),第i個容器中的結點包含頂點vi的所有鄰接頂點。實際上我們常用的鄰接矩陣就是一種未離散化每個點的邊集的鄰接表。
2樓:
使用棧來實現演算法。
用鄰接表表示圖進行深度優先遍歷時,通常採用棧來實現演算法,廣度遍歷使用佇列。
擴充套件材料:
深度優先遍歷:類似與樹的前序遍歷。從圖中的某個頂點v出發,訪問此頂點,然後從v的未被訪問到的鄰接點進行遍歷,直到圖中所有和v有路徑相通的頂點都被訪問到
注:優先訪問外層節點,訪問到無新頂點時,會進行回退,訪問未被訪問過的分支頂點。
廣度優先遍歷:類似於樹的層序遍歷。從圖中的某個頂點w出發,讓頂點w入隊,然後頂點w再出隊,並讓所有和頂點w相連的頂點入隊,然後再出隊一個頂點t,並讓所有和t相連但未被訪問過的頂點入隊……由此迴圈,指定圖中所有元素都出隊。
知網**-資料結構中圖的遍歷演算法研究
3樓:昕痕
鄰接表圖的深度優先,思想是以深度因素為優先遍歷,(因此可以檢測是否圖為連通圖),可以想像成你從上往下走迷宮,走不動了就從根再換條路走,演算法實現方式就與這種思想匹配,使用遞迴(棧)來完成遍歷。具體為:
void dfstra(graph t,bool visit[n])
在用鄰接表表示圖時,對圖進行深度優先搜尋遍歷的演算法的時間複雜度為()
4樓:匿名使用者
因為鄰接
矩陣最壞時需要將矩陣中所有元素掃描完,元素個數是n^2個,自然演算法就是內o(n^2)
鄰接表,只是儲存了邊容或者弧,將鄰接表掃描完就可以了,時間複雜度自然就是o(n+e)了,n是頂點數,e的邊或者弧的數量
具有n個頂點、e條邊的圖採用鄰接表儲存結構,進行深度優先遍歷和廣度優先遍歷運算的時間複雜度均為
5樓:烏石
答案是o(n+e) 但是鄰接表裡面不是每個邊被儲存兩次嗎,為什麼不是n+2e呢?
在大o表示法中o(n+2e)通常應表示為o(n+e)
求大神幫做資料結構作業:使用鄰接矩陣或者鄰接表建立一個圖,並對這個圖進行深度優先遍歷和廣度優先遍歷
6樓:匿名使用者
這裡面有你上面
說的**實現,講
內的很容詳細
7樓:淡淡的黯然成傷
我這裡有一個,給你看看,明天給
用鄰接表表示的圖的輸出 PrintGraph 的演算法 C語言
單連結串列類中的輸出流函式過載,輸出連結串列 圖類中再次過載輸出流函式。一次頂點表的迴圈,輸出。結果 c語言程式設計怎樣入門 一 工欲善其事,必先利其器 這裡介紹幾個學習c語言必備的裝置和書籍 a 開發環境 例如turbo c 2.0,這個曾經佔據了dos時代開發程式的大半個江山。但是現在windo...
用決策樹和決策表表示快遞運費的計算方法
計算方法 這個主要要根據貨物的種類來進行計算,一般物流公司的貨物運費計算方法也大致是這幾類。一 按照重量計費 這種方法就是按照寄送貨物的毛重,來計算運輸費用,前提是貨物的體積在規定範圍內。二 按照件數計費 按照貨物的實際件數計算運費,這種計費方式一般適用於比較貴重的物品。擴充套件資料 決策樹演算法的...
某研究小組中進行某植物的栽培試驗,圖1表示在適宜的光照 CO
木小木 儀醫 1 圖1中的虛線始終為二氧化碳的釋放,因此表示呼吸速率隨溫度變化的情況 而實線會低於0,因此表示淨光合速率隨溫度變化的情況 圖中看出,當溫度達到55 時,實線消失,只剩下虛線,表示植物不再進行光合作用,只進行呼吸作用 2 圖2中,40 時,實線表示的淨光合速率為0,表明此溫度條件下,光...