日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

无向图的深度优先遍历非递归_图算法总结

發(fā)布時(shí)間:2025/3/12 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 无向图的深度优先遍历非递归_图算法总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

@[TOC]

圖算法

1、圖的表示

1.1、鄰接矩陣(有向圖、無(wú)向圖、帶權(quán)圖、代碼實(shí)現(xiàn))

1、無(wú)向圖的鄰接矩陣

2、有向圖的鄰接矩陣

3、帶權(quán)值的圖

有了上述的理解,我們可以設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),并實(shí)現(xiàn)了。C++實(shí)現(xiàn)如下:

#include

1.2、 鄰接表

1、鄰接表的提出

2、無(wú)向圖的鄰接表

3、有向圖的鄰接表(分出邊表、入邊表)

4、帶權(quán)圖的處理

有了上面的鄰接表的理解,我們可以實(shí)現(xiàn)代碼(java):

package

1.3、 十字鏈表與鄰接多重表

1、十字鏈表——解決有向圖鄰接表結(jié)構(gòu)缺點(diǎn)

2、鄰接多重表——解決無(wú)向圖鄰接表結(jié)構(gòu),邊的刪除麻煩問(wèn)題

1.4、邊集數(shù)組

2、圖的遍歷

2.1、DFS(深度優(yōu)先搜索、遞歸算法)

基于鄰接矩陣的DFS

template

由于是鄰接矩陣存儲(chǔ)結(jié)構(gòu),算法時(shí)間復(fù)雜度O(n^2^)

基于鄰接表的DFS

template

鄰接表使得算法復(fù)雜度為O(n+e),n為頂點(diǎn)個(gè)數(shù),e為邊數(shù)。

2.2、BFS(寬度優(yōu)先搜索、優(yōu)先隊(duì)列)

對(duì)邊搜索、不斷延展。 鄰接矩陣的BFS

void

鄰接表的BFS

void

2.3、小結(jié)

3、尋找最小生成樹(兩個(gè)貪心算法)

實(shí)際問(wèn)題:

3.1、Prim算法(分割法、貪心策略:尋找集合中的頂點(diǎn)所連接邊中最小權(quán)值邊)

貪心策略、算法分析:

template

3.2、 Kruskal算法(邊集數(shù)組、每次從剩余邊選擇最小權(quán)值邊)

圖解分析:

基于分析我們可以寫出代碼:

template

運(yùn)行結(jié)果:

4、最短路徑問(wèn)題

4.1、單源最短路徑問(wèn)題(給定一個(gè)點(diǎn),求到其余各個(gè)點(diǎn)的距離)

4.1.1、迪杰特斯拉(Dijkstra)算法(貪心算法)

很像prim算法,利用集合,尋找最短路徑。但是有區(qū)別。而且用途也不同。這是一個(gè)貪心算法。

基于理解上的算法實(shí)現(xiàn) :

template

未優(yōu)化的算法復(fù)雜度很高

4.1.2、Floyd算法(動(dòng)態(tài)規(guī)劃)

4.1.3、Bellman-Ford 算法

總結(jié)

以上是生活随笔為你收集整理的无向图的深度优先遍历非递归_图算法总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。