天天看點

算法起步之廣度優先搜尋

          廣度優先搜尋算法是圖的基本算法之一,圖是用來儲存過對多的關系的資料結構,相對于樹一對多的關系更為複雜,是以難度也會比樹結構難一點,圖的存儲一般有連接配接表表示跟連結矩陣表示,相比來說連結矩陣的方式更為常用,也就是用數組來存儲。而廣度優先搜尋算法其實就是圖的周遊過程,數組的周遊大家都會,數組的周遊我們是按照下标的順序來周遊的,而圖的周遊也有自己的方式,圖是多對多的關系,我們可以按照各個節點直接的關聯關系來周遊他們,這樣便衍生出來深度優先跟廣度優先,廣度優先是先通路與跟目前節點相關聯的所有節點,而深度優先則是按照關聯關系一層層的周遊。如下圖:

算法起步之廣度優先搜尋

          廣度優先搜尋我們需要借助一個隊列,我們可以自己寫一個隊列,也可以借助linkedlist。

繼續閱讀