DFS學習歸納總結

2021-07-27 23:38:55 字數 672 閱讀 5069

看了幾次題,dfs還是用的比較多的一種演算法,上次做阿里的程式設計題也是深搜加剪枝。太久沒寫了,大學學的一點皮毛也都荒廢了。

這篇部落格寫的很好,偽**也清晰明了:深度優先搜尋(dfs) 演算法入門

c++**

/** 

* dfs核心偽**

* 前置條件是visit陣列全部設定成false

*@param n 當前開始搜尋的節點

*@param d 當前到達的深度,也即是路徑長度

*@return 是否有解

*/

bool dfs(node n, int d)

for (node nextnode in n)

//重新設定成未訪問,因為它有可能出現在下一次搜尋的別的路徑中

visit[nextnode] = false;

} //到這裡,發現本次搜尋還沒找到解,那就要從當前節點的下乙個節點開始搜尋。

} return

false;//本次搜尋無解

}

演算法中要注意:

要有出口(搜尋到滿足條件的時候返回);

利用visit陣列標記,訪問乙個點就將其先標記再訪問;

當前遞迴返回時,如果沒有返回true,要將之前標記過得點重置。

關於搜尋剪枝演算法之後再補充。

css學習歸納總結(三)

行內樣式是寫在html標籤的style屬性裡的,比如 hello everyone 行內樣式會覆蓋嵌入樣式和鏈結樣式。嵌入的css樣式是放在html文件的head元素中的,這點想必大家都知道,這裡就不贅述了。鏈結樣式的作用範圍可以是整個 只要使用標籤把樣式表鏈結到每個頁面,相應的頁面就可以使用其中的...

DFS和BFS學習總結

深度遍歷就是在圖中從乙個頂點開始,按照乙個規則不重複地走下去。就是不撞南牆不回頭一樣。假如從a頂點開始,按照乙個規則去走 假如我們按照一直字典順序走 那麼就從a走到b再從b走到了c,走到c後再按照字典順序的時候,發現a已經走過,那麼此時就退回到c點,選擇另乙個d走下去。就和樹的前序遍歷是一樣的。1 ...

Select歸納總結

include include int select int maxfdpl,fd set readset,fd set write,fd set exceptset,const struct timeval timeout 返回值 該函式的返回值表示跨所有描述符集的已就緒的總位數。如果在任何描述符...