0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言重解經(jīng)典回溯算法案例

Q4MP_gh_c472c21 ? 來(lái)源:cc ? 2019-01-29 11:24 ? 次閱讀

迷宮問(wèn)題是一道經(jīng)典的回溯算法問(wèn)題,給定一個(gè)迷宮矩陣,矩陣中的1表示障礙,0表示可走通路,給定迷宮入口出口,要求尋找從入口穿過(guò)迷宮到達(dá)出口的所有路徑,有則輸出,無(wú)則給出提示。一本合格的數(shù)據(jù)結(jié)構(gòu)教科書一般都會(huì)介紹迷宮問(wèn)題,網(wǎng)上的分析也是鋪天蓋地,這里就不再贅述重復(fù)的內(nèi)容了。廢話不多說(shuō),簡(jiǎn)單介紹一下程序,然后上代碼。

該程序用二維數(shù)組表示迷宮,用另一個(gè)二維數(shù)組記錄迷宮中的位置是否已經(jīng)走過(guò),同時(shí)用一個(gè)鏈?zhǔn)綏4娣潘阉鞒龅呐R時(shí)路徑。程序從迷宮入口開(kāi)始試探,隨著回溯試探過(guò)程的進(jìn)行,鏈?zhǔn)綏5拈L(zhǎng)度不斷變化,當(dāng)試探到迷宮出口時(shí),鏈表中存放的就是一條完整的穿過(guò)迷宮的路徑了,輸出路徑后回溯,繼續(xù)試探下一條路徑,當(dāng)回溯到入口時(shí)沒(méi)有新的可走方向時(shí)整個(gè)回溯試探的過(guò)程也就結(jié)束了。鏈表節(jié)點(diǎn)中除了存放被路徑連接的各單元的行列標(biāo)外,還存放有由該節(jié)點(diǎn)代表的單元前往該節(jié)點(diǎn)的后繼節(jié)點(diǎn)代表的單元的方向,這么做是為了方便回溯操作的進(jìn)行。

為方便起見(jiàn),程序中迷宮的入口是固定的,為左上角單元,出口同樣固定,為右下角單元。這并不妨礙程序的普適性,只要稍加修改就可以使程序適用于任意給定的出口和入口的情形。

啰嗦了這么半天,下面該上代碼了,代碼用C語(yǔ)言編寫,具體如下。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135858
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68231

原文標(biāo)題:C語(yǔ)言重解經(jīng)典回溯算法案例-迷宮問(wèn)題

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    回溯經(jīng)典 (五皇后問(wèn)題) (算法)

    5皇后問(wèn)題:在8*8的國(guó)際象棋棋盤上,放5個(gè)皇后,使它們控制整個(gè)棋盤,即在任何一格放一個(gè)棋子,都會(huì)馬上被吃掉。下面介紹回溯解法定義一個(gè)表示點(diǎn)的數(shù)據(jù)結(jié)構(gòu): struct Pt {Int x,y
    發(fā)表于 08-16 14:56

    C語(yǔ)言經(jīng)典算法100例

    C語(yǔ)言經(jīng)典算法100例
    發(fā)表于 11-01 13:51

    C語(yǔ)言經(jīng)典算法100例分享

    C語(yǔ)言經(jīng)典算法,要的拿去! C語(yǔ)言經(jīng)典
    發(fā)表于 07-19 01:47

    C語(yǔ)言經(jīng)典算法分享

    C語(yǔ)言經(jīng)典算法
    發(fā)表于 02-01 07:45

    C語(yǔ)言有哪些經(jīng)典算法?

    C語(yǔ)言經(jīng)典算法
    發(fā)表于 03-09 07:35

    C語(yǔ)言經(jīng)典算法大全

    C語(yǔ)言經(jīng)典算法,詳細(xì)解析算法過(guò)程及算法思想,給讀者具有啟發(fā)意義,教程包含
    發(fā)表于 10-07 08:16

    C語(yǔ)言經(jīng)典算法

    C語(yǔ)言經(jīng)典算法--助你解決算法問(wèn)題C語(yǔ)言
    發(fā)表于 03-23 14:30 ?27次下載

    經(jīng)典C語(yǔ)言算法

    一些經(jīng)典C語(yǔ)言算法,該算法詳細(xì)介紹了使用C語(yǔ)言如何
    發(fā)表于 04-06 14:52 ?4次下載

    100個(gè)經(jīng)典C語(yǔ)言算法

    C語(yǔ)言經(jīng)典算法?.doc 這是我收集的部分c語(yǔ)言算法
    發(fā)表于 04-06 15:13 ?0次下載

    算法-c語(yǔ)言描述

    算法-c語(yǔ)言描述
    發(fā)表于 10-27 15:28 ?46次下載
    <b class='flag-5'>算法</b>精<b class='flag-5'>解</b>-<b class='flag-5'>c</b><b class='flag-5'>語(yǔ)言</b>描述

    電路板排列問(wèn)題 回溯C語(yǔ)言

    本文為大家?guī)?lái)用C語(yǔ)言實(shí)現(xiàn)的回溯法電路板排列程序。
    發(fā)表于 01-18 17:06 ?5916次閱讀

    C語(yǔ)言經(jīng)典算法大全包括了51個(gè)算法的詳細(xì)中文概述

    C語(yǔ)言經(jīng)典算法大全包括了51個(gè)算法的詳細(xì)中文概述
    發(fā)表于 06-04 08:13 ?148次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的<b class='flag-5'>經(jīng)典</b><b class='flag-5'>算法</b>大全包括了51個(gè)<b class='flag-5'>算法</b>的詳細(xì)中文概述

    10個(gè)經(jīng)典C語(yǔ)言面試基礎(chǔ)算法及代碼

    10個(gè)經(jīng)典C語(yǔ)言面試基礎(chǔ)算法及代碼
    的頭像 發(fā)表于 01-16 11:09 ?2810次閱讀

    C語(yǔ)言的100個(gè)經(jīng)典算法免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言的100個(gè)經(jīng)典算法免費(fèi)下載。
    發(fā)表于 09-28 08:00 ?6次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的100個(gè)<b class='flag-5'>經(jīng)典</b><b class='flag-5'>算法</b>免費(fèi)下載

    關(guān)于回溯算法的介紹與運(yùn)用

    本文就來(lái)看一道非常經(jīng)典回溯算法問(wèn)題,子集劃分問(wèn)題,可以幫你更深刻理解回溯算法的思維,得心應(yīng)手地寫出回溯
    的頭像 發(fā)表于 03-25 13:42 ?1617次閱讀