第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

無(wú)向圖中的循環(huán)

無(wú)向圖中的循環(huán)

慕村225694 2019-10-17 10:23:47
給定具有n個(gè)頂點(diǎn)(| V | = n)的無(wú)向圖G =(V,E),您如何查找它是否包含O(n)的循環(huán)?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

實(shí)際上,深度優(yōu)先(或?qū)嶋H上廣度優(yōu)先)搜索還不夠。您需要一個(gè)復(fù)雜得多的算法。


例如,假設(shè)有一個(gè)圖,它的節(jié)點(diǎn)為{a,b,c,d},而邊為{(a,b),(b,c),(b,d),(d,c)}的邊為(x ,y)是從x到y(tǒng)的邊。(看起來(lái)像這樣,所有邊緣都朝下。)


    (a)

     |

     |

    (b)

    / \ 

  (d)  |

   |   |

    \ /

    (c)

然后進(jìn)行深度優(yōu)先搜索可能會(huì)訪(fǎng)問(wèn)節(jié)點(diǎn)(a),然后訪(fǎng)問(wèn)(b),然后訪(fǎng)問(wèn)(c),然后回溯到(b),然后訪(fǎng)問(wèn)(d),最后再次訪(fǎng)問(wèn)(c),并得出一個(gè)循環(huán)-沒(méi)有的時(shí)候。廣度優(yōu)先發(fā)生類(lèi)似的事情。


您需要做的是跟蹤訪(fǎng)問(wèn)過(guò)程中的哪些節(jié)點(diǎn)。在上面的示例中,當(dāng)算法到達(dá)(d)時(shí),它已經(jīng)完成了對(duì)(c)的訪(fǎng)問(wèn),但沒(méi)有完成對(duì)(a)或(b)的訪(fǎng)問(wèn)。因此,重新訪(fǎng)問(wèn)完成的節(jié)點(diǎn)很好,但是訪(fǎng)問(wèn)未完成的節(jié)點(diǎn)意味著您有一個(gè)周期。通常的做法是為每個(gè)節(jié)點(diǎn)上白色(尚未訪(fǎng)問(wèn)),灰色(正在訪(fǎng)問(wèn)后代)或黑色(完成訪(fǎng)問(wèn))上色。


這是一些偽代碼!


define visit(node n):

  if n.colour == grey: //if we're still visiting this node or its descendants

    throw exception("Cycle found")


  n.colour = grey //to indicate this node is being visited

  for node child in n.children():

    if child.colour == white: //if the child is unexplored

      visit(child)


  n.colour = black //to show we're done visiting this node

  return

那么只有當(dāng)有一個(gè)循環(huán)(最初所有節(jié)點(diǎn)都應(yīng)該為白色)時(shí),運(yùn)行visit(root_node)才會(huì)引發(fā)異常。


查看完整回答
反對(duì) 回復(fù) 2019-10-17
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

一個(gè)沒(méi)有周期的連通無(wú)向圖G是一棵樹(shù)!任何一棵樹(shù)都恰好具有n ? 1條邊,因此我們可以簡(jiǎn)單地遍歷圖的邊列表并計(jì)算邊。如果我們計(jì)算n ? 1個(gè)邊,則返回“是”,但是如果到達(dá)第n個(gè)邊,則返回“否”。這需要O(n)時(shí)間,因?yàn)槲覀冏疃嗖榭磏個(gè)邊。

但是,如果圖形未連接,那么我們將不得不使用DFS。我們可以遍歷這些邊,如果有任何未探索的邊通向被訪(fǎng)問(wèn)的頂點(diǎn),則它具有循環(huán)。


查看完整回答
反對(duì) 回復(fù) 2019-10-17
  • 3 回答
  • 0 關(guān)注
  • 780 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)