国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

為什么深度優(yōu)先搜索可以判定簡單圖中是否有環(huán),而寬度優(yōu)先搜索不行?

這篇具有很好參考價值的文章主要介紹了為什么深度優(yōu)先搜索可以判定簡單圖中是否有環(huán),而寬度優(yōu)先搜索不行?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一,前言

本文是原創(chuàng)作品,可能有所不足,敬請指正,禮貌交流,感激不盡。

二,前提知識

1,簡單圖

簡單圖是指滿足以下條件的圖:沒有連接頂點和其自身的邊、不存在平行邊。

2,環(huán)

這里我們討論的是簡單回路(環(huán)),也就是指除了第一個頂點和最后一個頂點相同以外、其他頂點不重復(fù)出現(xiàn)的回路。

3,樹(單指無向樹)的定義是連通無回路的無向圖。

約定:

1,以下的“寬搜”二字代表寬度優(yōu)先搜索,深搜代表深度優(yōu)先搜索。

2,以下的圖均指簡單連通圖

三,正文

1,首先可以肯定的是,對于無向圖而言,寬搜和深搜都能判斷是否有環(huán)。

簡要說明一下,假如一個無向圖有環(huán),那么在寬搜的過程中,能搜到已經(jīng)訪問過的結(jié)點。如果一個無向圖沒有環(huán)(參考無向樹),那么它的寬度優(yōu)先搜索過程中,是不會訪問到已訪問過的結(jié)點的。

對于深搜,如果一個簡單無向圖有環(huán),那么深搜的棧保存的結(jié)點形成的路徑(以下簡稱深搜結(jié)點路徑)會有回邊(指向棧中結(jié)點的邊)。但是沒有環(huán)的話,就不會出現(xiàn)這種情況。

2,對于有向圖而言,它們中只有深搜能判斷是否有環(huán)。

首先對于有向圖而言,無論有沒有環(huán),寬搜都有可能搜到已訪問過的結(jié)點。如下圖:

為什么深度優(yōu)先遍歷可以判斷回路,深度優(yōu)先,寬度優(yōu)先,數(shù)據(jù)結(jié)構(gòu)

當(dāng)結(jié)點B,C都進(jìn)入了寬搜的隊列,那么它們會先后訪問D結(jié)點,這時就出現(xiàn)了訪問已訪問過的結(jié)點的情況。但是此時該圖沒有環(huán)。?

因此,之前的那個辦法不能判斷了。

但是深搜依然可以。如果簡單有向圖中存在環(huán),深搜結(jié)點路徑依然會出現(xiàn)回邊。

四,寫在最后

如有錯誤,敬請指正,禮貌交流,感激不盡

附錄,有小伙伴提到了深搜判斷無向圖是否有環(huán),我寫了一下偽代碼,邏輯不一定嚴(yán)密,但是大體上應(yīng)該沒錯,如有錯誤,歡迎指正文章來源地址http://www.zghlxwxcb.cn/news/detail-629292.html

#include<iostream>
#define N 5
using namespace std;
bool DFS(int node, int tag[],int graph[][5], int parent[])//通過深搜判斷無向圖是否有環(huán)
{//node代表當(dāng)前結(jié)點,tag[i]等于0代表該結(jié)點沒有在深搜的棧中,tag[i]等于1代表當(dāng)前結(jié)點在深搜的棧中。
//graph數(shù)組代表圖的鄰接矩陣,N代表結(jié)點個數(shù),
//parent[i]等于j,代表當(dāng)前深搜的棧中結(jié)點i的前驅(qū)是j ,也即訪問i之后就立馬訪問j了 
//該函數(shù)返回false代表有環(huán),否則代表無環(huán) 
	if(tag[node] == 1)return false;//遇到回邊就返回false 
	else tag[node] = 1;
	bool res = true;
	for(int i=0;i<N;i++)
	{
		if(graph[node][i] > 0 && parent[node] != i)//如果結(jié)點node和i之間存在一條邊,當(dāng)前結(jié)點的父節(jié)點不應(yīng)該訪問 
		{
			parent[i] = node;
			res = DFS( i,  tag, graph, parent);
			if(res == false)break;//只要有一條回邊,就代表整個圖有環(huán) 
			parent[i] = -1;
			tag[i] = 0; 
		} 
	}
	return res;
} 
int main()
{
	
	return 0;
} 

到了這里,關(guān)于為什么深度優(yōu)先搜索可以判定簡單圖中是否有環(huán),而寬度優(yōu)先搜索不行?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 為什么說es是近實時搜索

    首先要理解es的存儲結(jié)構(gòu): 一個index的數(shù)據(jù),分散在多個shard(分片),一個分片又有很多segment(段),es是數(shù)據(jù)不可變模型,更新數(shù)據(jù)只是新增一個版本。 es是怎么寫數(shù)據(jù)的? 每次寫的時候,首先會寫到es的內(nèi)存(每個分片的內(nèi)存),這時寫的數(shù)據(jù)是不可搜索的;然后每個分片默認(rèn)每

    2024年02月11日
    瀏覽(23)
  • Linux中vim為什么直接可以操作jar包

    今天上線遇到了令人迷惑的問題,寬哥大佬排查的時候用vim直接查看了jar包,感覺很神奇,所以查了查資料; 學(xué)無止境!! JAR 文件的本質(zhì): JAR(Java ARchive)文件是 Java 平臺上用于封裝 Java 類文件、相關(guān)的元數(shù)據(jù)和資源文件的壓縮包。JAR 文件使用了 ZIP 文件格式進(jìn)行壓縮和存

    2023年04月26日
    瀏覽(25)
  • 路由器劫持是什么意思為什么要劫持路由器有哪些方法可以防范

    繼“棱鏡門”事件之后,網(wǎng)絡(luò)安全也隨之被各大媒體關(guān)注,近段時間有不少媒體報道,全球擁有大量的路由器遭入侵、路由器被劫持等等。另外在如今越來越多的無線網(wǎng)絡(luò)環(huán)境中,蹭網(wǎng)也是常常被人們提及,那么路由器劫持是什么意思?怎么看路由器是否被劫持?針對這兩個

    2024年02月07日
    瀏覽(30)
  • 手機(jī)wifi可以連接路由器但是上不了網(wǎng),為什么?

    手機(jī)wifi可以連接路由器但是上不了網(wǎng),為什么?

    本文轉(zhuǎn)載自:路由器知識庫:www.luyouqiset.cn 詳細(xì)介紹無線路由器設(shè)置后卻上不了網(wǎng)的解決辦法。但我們拿到路由器后一般都是按照說明書,一步一步登陸后臺去設(shè)置無線路由器。結(jié)果辛辛苦苦設(shè)置完后,發(fā)現(xiàn)手機(jī),筆記本電腦都夠連接到tplink路由器的網(wǎng)絡(luò)但上不了網(wǎng)。氣憤到先

    2024年02月11日
    瀏覽(25)
  • 為什么網(wǎng)絡(luò)可以ping通,還是不能ssh到目標(biāo)主機(jī)?

    ??做運(yùn)維工作,我們都是通過遠(yuǎn)程的方式去連接一臺服務(wù)器或者虛擬機(jī),很多初次做運(yùn)維的朋友可能經(jīng)常會遇到這樣一個問題:我ping目標(biāo)服務(wù)器的IP是通的,但是我通過ssh卻不能連上主機(jī)。今天,就來淺談一下,為什么你ping網(wǎng)絡(luò)是通的,但是卻不能連接到遠(yuǎn)程主機(jī),當(dāng)你弄

    2024年02月09日
    瀏覽(27)
  • MySQL可重復(fù)讀隔離級別下,樂觀鎖為什么可以生效?

    今天蹦出一個很蠢的問題,來記錄一下 MySQL在可重復(fù)讀事務(wù)隔離級別下,通過版本號實現(xiàn)的樂觀鎖可以生效嗎? 舉個例子:開啟了兩個事務(wù)一和二,在事務(wù)一中對某條數(shù)據(jù)進(jìn)行了修改,版本號發(fā)生變化。但是在事務(wù)二中,查詢這條記錄的版本號,并沒有發(fā)生變化,怎么確定這

    2024年02月07日
    瀏覽(20)
  • 為什么選擇elasticsearch分布式搜索引擎

    為什么選擇elasticsearch分布式搜索引擎

    elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容 例如: 在CSDN上搜索代碼 在電商網(wǎng)站搜索商品 在百度搜索答案 elasticsearch結(jié)合kibana、Logstash、Beats,也就是elastic stack(ELK)。被廣泛應(yīng)用在日志數(shù)據(jù)分析、實時監(jiān)

    2024年02月12日
    瀏覽(22)
  • 為什么說云蜜罐可以讓安全防御工作由被動變主動

    為什么說云蜜罐可以讓安全防御工作由被動變主動

    蜜罐技術(shù)本質(zhì)上是一種對攻擊方進(jìn)行欺騙的技術(shù),通過布置一些作為誘餌的主機(jī)、網(wǎng)絡(luò)服務(wù)或者信息,誘使攻擊方對它們實施攻擊,從而可以對攻擊行為進(jìn)行捕獲和分析,了解攻擊方所使用的工具與方法,推測攻擊意圖和動機(jī),能夠讓防御方清晰地了解他們所面對的安全威脅

    2024年04月10日
    瀏覽(27)
  • 0062__對象指針為NULL,為什么還是可以調(diào)用成員函數(shù)

    對象指針為NULL,為什么還是可以調(diào)用成員函數(shù)_空對象指針為什么能調(diào)用函數(shù)_一顆石頭崽兒的博客-CSDN博客

    2024年02月10日
    瀏覽(16)
  • 為什么說ChatGPT還不是搜索引擎的對手

    1950年,英國科學(xué)家圖靈在一篇論文中預(yù)言,人類有可能創(chuàng)造出具有真正智能的機(jī)器。 著名的「圖靈測試」就此誕生:如果一臺機(jī)器能夠與人類展開對話,而不被辨別出其機(jī)器身份,那么稱這臺機(jī)器具有智能。 也是從那時開始,人類世界開始了對人工智能長達(dá)半個多世紀(jì)的探

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包