下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Java由淺入深帶你掌握圖的遍歷目錄1.圖的遍歷2.深度優(yōu)先遍歷3.利用DFS判斷有向圖是否存在環(huán)4.廣度優(yōu)先遍歷
1.圖的遍歷
從圖中某一頂點出發(fā)訪問圖中其余頂點,且每個頂點僅被訪問一次
圖的遍歷有兩種深度優(yōu)先遍歷DFS、廣度優(yōu)先遍歷BFS
2.深度優(yōu)先遍歷
深度優(yōu)先遍歷以深度為優(yōu)先進(jìn)行遍歷,簡單來說就是每次走到底。類似于二叉樹的前序遍歷
思路:
1.以某一個頂點為起點進(jìn)行深度優(yōu)先遍歷,并標(biāo)記該頂點已訪問
2.以該頂點為起點選取任意一條路徑一直遍歷到底,并標(biāo)記訪問過的頂點
3.第2步遍歷到底后回退到上一個頂點,重復(fù)第2步
4.遍歷所有頂點結(jié)束
根據(jù)遍歷思路可知,這是一個遞歸的過程,其實DFS與回溯基本相同。
遍歷:
以此圖為例進(jìn)行深度優(yōu)先遍歷
staticvoiddfs(int[][]graph,intidx,boolean[]visit){
intlen=graph.length;
//訪問過
if(visit[idx])return;
//訪問該頂點
System.out.println("V"+idx);
//標(biāo)志頂點
visit[idx]=true;
for(inti=1;ilen;i++){
//訪問該頂點相連的所有邊
if(graph[idx][i]==1){
//遞歸進(jìn)行dfs遍歷
dfs(graph,i,visit);
}
遍歷結(jié)果:
V1
V2
V3
V4
V5
V6
V7
V8
V9
創(chuàng)建圖的代碼:
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
//頂點數(shù)以1開始
intn=scanner.nextInt();
int[][]graph=newint[n+1][n+1];
//邊數(shù)
intm=scanner.nextInt();
for(inti=1;ii++){
intv1=scanner.nextInt();
intv2=scanner.nextInt();
graph[v1][v2]=1;
graph[v2][v1]=1;
//標(biāo)記數(shù)組false表示未訪問過
boolean[]visit=newboolean[n+1];
dfs(graph,1,visit);
}
3.利用DFS判斷有向圖是否存在環(huán)
思路:遍歷某一個頂點時,如果除了上一個頂點之外,還存在其他相連頂點被訪問過,則必然存在環(huán)
//默認(rèn)無環(huán)
staticbooleanflag=false;
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
//頂點數(shù)以1開始
intn=scanner.nextInt();
int[][]graph=newint[n+1][n+1];
//邊數(shù)
intm=scanner.nextInt();
for(inti=1;ii++){
intv1=scanner.nextInt();
intv2=scanner.nextInt();
graph[v1][v2]=1;
//標(biāo)記數(shù)組true為訪問過
boolean[]visit=newboolean[n+1];
dfs(graph,1,visit,1);
if(flag)
System.out.println("有環(huán)");
staticvoiddfs(int[][]graph,intidx,boolean[]visit,intparent){
intlen=graph.length;
System.out.println("V"+idx);
//標(biāo)記頂點
visit[idx]=true;
for(inti=1;ilen;i++){
//訪問該頂點相連的所有邊
if(graph[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026上半年海南事業(yè)單位聯(lián)考瓊海市招聘事業(yè)單位工作人員167人備考題庫(1號)(含答案詳解)
- 2024年開平市衛(wèi)生系統(tǒng)考試真題
- 初中物理凹透鏡成像規(guī)律的生活化實驗創(chuàng)新設(shè)計課題報告教學(xué)研究課題報告
- 蒸發(fā)濃縮結(jié)晶工安全生產(chǎn)意識水平考核試卷含答案
- 加氣混凝土大板拼裝工班組評比強化考核試卷含答案
- 變壓器設(shè)備檢修工崗前競賽考核試卷含答案
- 汽車零部件再制造裝調(diào)工安全實操模擬考核試卷含答案
- 液晶顯示器件彩膜制造工崗前技術(shù)基礎(chǔ)考核試卷含答案
- 野生植物培植工復(fù)試水平考核試卷含答案
- 2025年福建省水利投資開發(fā)集團連城水務(wù)有限公司招聘筆試參考題庫含答案解析
- 股東清算解散協(xié)議書
- 產(chǎn)后腰背疼康復(fù)治療
- 2025年商業(yè)物業(yè)抵押貸款合同范本
- 2024用電信息采集系統(tǒng)技術(shù)規(guī)范第1部分:專變采集終端
- 浙江省杭州市2024年中考語文試卷(含答案)
- 四川省綿陽市2020年中考數(shù)學(xué)試題(含解析)
- 期末達(dá)標(biāo)測試卷(試題)-2024-2025學(xué)年人教PEP版英語四年級上冊
- DLT 1563-2016 中壓配電網(wǎng)可靠性評估導(dǎo)則
- HJ 377-2019 化學(xué)需氧量(CODCr)水質(zhì)在線自動監(jiān)測儀技術(shù)要求及檢測方法
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
評論
0/150
提交評論