1. 程式人生 > >關於鄰接表和其深度優先遍歷、廣度優先遍歷的問題

關於鄰接表和其深度優先遍歷、廣度優先遍歷的問題

如果有一個鄰接表儲存的圖,以0點出發,深度優先遍歷和廣度優先遍歷。

鄰接表為:

[0]->[1]->[5]->[6]->END

[1]->[0]->[2]->END

[2]->[1]->[3]->END

[3]->[2]->[4]->[7]->END

[4]->[3]->[5]->[8]->END

[5]->[4]->[0]->[END

[6]->[0]->[8]->[7]->END

[7]->[0]->[8]->[3]->END

[8]->[6]->[7]->[4]->END

鄰接表每一行第一個值表示第幾個節點,一共有0,1,2……這9個節點。每一行從第二個值開始表示這個節點可以連線到的節點。第一行,0節點可以與1,5,6相連,1節點可以與0,2相連,……8節點可以與6,7,4節點相連。由此關係,可以畫出這個圖。


由鄰接表也可以方便得得出廣度遍歷的結果,因為廣度遍歷就是層次遍歷,一層一層遍歷。廣度優先遍歷結果為:0 1 5 6 2 4 8 7 3 END

深度優先遍歷是從一個節點開始訪問一條線連結的所有節點,從這條線最後一個節點再開始深度優先遍歷。深度優先遍歷的結果為:0 1 2 3 4 5 8 6 7 END。012345一條線,從5開始到0,所以從4再開始到867.