www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]google 下維基,廣度優(yōu)先搜索,理解定義只要看哪個(gè)“廣”字就都能明白,在圖的遍歷中,從根節(jié)點(diǎn)開(kāi)始,沿著樹(shù)的寬度遍歷樹(shù)的節(jié)點(diǎn)。可以這樣通俗的理解,一個(gè)人去拜訪你家的時(shí)候是先拜訪長(zhǎng)輩,按照級(jí)別一級(jí)一級(jí)

google 下維基,廣度優(yōu)先搜索,理解定義只要看哪個(gè)“廣”字就都能明白,在圖的遍歷中,從根節(jié)點(diǎn)開(kāi)始,沿著樹(shù)的寬度遍歷樹(shù)的節(jié)點(diǎn)??梢赃@樣通俗的理解,一個(gè)人去拜訪你家的時(shí)候是先拜訪長(zhǎng)輩,按照級(jí)別一級(jí)一級(jí)的拜訪下來(lái)。

廢話不多說(shuō),直接敲代碼(對(duì)于不懂的算法,直接敲代碼,背起來(lái),就不信會(huì)不懂)

1. C 語(yǔ)言實(shí)現(xiàn)

廣度優(yōu)先搜索算法:

void BFS(VLink G[], int v) 
{ int w;
  VISIT(v);                    /*訪問(wèn)頂點(diǎn)v*/
  visited[v] = 1;              /*頂點(diǎn)v對(duì)應(yīng)的訪問(wèn)標(biāo)記置為1*/
  ADDQ(Q,v);
  while(!EMPTYQ(Q))
  { v = DELQ(Q);               /*退出隊(duì)頭元素v*/
    w = FIRSTADJ(G,v);         /*求v的第1個(gè)鄰接點(diǎn)。無(wú)鄰接點(diǎn)則返回-1*/
    while(w != -1)
    { if(visited[w] == 0)
      { VISIT(w);              /*訪問(wèn)頂點(diǎn)v*/
        ADDQ(Q,w);             /*當(dāng)前被訪問(wèn)的頂點(diǎn)w進(jìn)隊(duì)*/
        visited[w] = 1;        /*頂點(diǎn)w對(duì)應(yīng)的訪問(wèn)標(biāo)記置為1*/
      }
      w = NEXTADJ(G,v);        /*求v的下一個(gè)鄰接點(diǎn)。若無(wú)鄰接點(diǎn)則返回-1*/
    }
  }  
}

對(duì)圖G=(V,E)進(jìn)行廣度優(yōu)先搜索的主算法如下。

void TRAVEL_BFS(VLink G[], int visited[], int n)
{ int i;
  for(i = 0; i < n; i ++)
  { visited[i] = 0;            /* 標(biāo)記數(shù)組賦初值(清零)*/
  }
  for(i = 0; i < n; i ++)
    if(visited[i] == 0)
      BFS(G,i);
}
C++ 的實(shí)現(xiàn)[編輯]

定義一個(gè)結(jié)構(gòu)體來(lái)表達(dá)一個(gè)節(jié)點(diǎn)的結(jié)構(gòu):

 struct node
 {
    int self; //數(shù)據(jù)
    node *left; //左節(jié)點(diǎn)
    node *right; //右節(jié)點(diǎn)
 };

那么,我們?cè)谒阉饕粋€(gè)樹(shù)的時(shí)候,從一個(gè)節(jié)點(diǎn)開(kāi)始,能首先獲取的是它的兩個(gè)子節(jié)點(diǎn)。例如:

   A
B     C

A是第一個(gè)訪問(wèn)的,然后順序是B和C;然后再是B的子節(jié)點(diǎn),C的子節(jié)點(diǎn)。那么我們?cè)趺磥?lái)保證這個(gè)順序呢?

這里就應(yīng)該用queue數(shù)據(jù)結(jié)構(gòu),因?yàn)閝ueue采用先進(jìn)先出( first-in-first-out )的順序。

使用C++的STL函式庫(kù),下面的程序能幫助理解:

 std::queue visited, unvisited; 
 node nodes[9];
 node* current;
 
 unvisited.push(&nodes[0]); //先把root放入unvisited queue
 
 while(!unvisited.empty()) //只有unvisited不空
 {
    current = (unvisited.front()); //目前應(yīng)該檢驗(yàn)的
 
    if(current -> left != NULL)
       unvisited.push(current -> left); //把左邊放入queue中
 
    if(current -> right != NULL) //右邊壓入。因?yàn)镼UEUE是一個(gè)先進(jìn)先出的結(jié)構(gòu),所以即使后面再壓其他東西,依然會(huì)先訪問(wèn)這個(gè)。
       unvisited.push(current -> right);
 
    visited.push(current);
 
    cout << current -> self << endl;
 
    unvisited.pop();
 }

個(gè)人認(rèn)為想要理解好廣度優(yōu)先算法的話,直接看 C++ 實(shí)現(xiàn)的代碼,簡(jiǎn)單易懂。

關(guān)于廣度優(yōu)先搜索算法還有很多種方式的代碼實(shí)現(xiàn),比如堆棧實(shí)現(xiàn),遞歸實(shí)現(xiàn)...但是把上面這兩種實(shí)現(xiàn)方法記住,剩下的其實(shí)是換湯不換藥。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉