freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

圖搜索基礎(chǔ)ppt課件(參考版)

2025-05-09 23:15本頁(yè)面
  

【正文】 } 55 2 深度優(yōu)先搜索的應(yīng)用 例 2 ? 注意: 用廣度優(yōu)先策略,搜索出的是一條最短的路徑,而用深度優(yōu)先搜索則只能找出一條可行的路徑,而不能保證是最短的路徑。 else if(maze[i][j]0)//是否可行 flag=0。 j=j+fy[k]。 } } 2 深度優(yōu)先搜索的應(yīng)用 例 2 check(int i,int j,int k) { int flag=1。 total++。j=8。i++) { print(―換行符” )。 for( i=1。 } maze[i][j]=2。 //來(lái)到新位置后 ,設(shè)置已走過(guò)標(biāo)志 if (newi=8 and newj=8) //到出口則輸出 ,否則下一步遞歸 Out( )。 newj=j+fy[k]。k=4。 //統(tǒng)計(jì)總步數(shù) } 53 search(int i, int j) { int k,newi,newj。 //入口坐標(biāo)設(shè)置已走標(biāo)志 search(1,1)。 main( ) { int total=0。fx[4]={1,1,0,0}, fy[4]={0,0,1,1}。 ? 函數(shù) check,檢查當(dāng)前狀態(tài)是否合理。 ? 有沒(méi)有其他方法? 51 2 深度優(yōu)先搜索的應(yīng)用 例 2 ? 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):用迷宮本身的存儲(chǔ)空間除了記錄走過(guò)的信息,還要標(biāo)識(shí)是否可行: ? maze[i][j]=3 標(biāo)識(shí)走過(guò)的方格; ? maze[i][j]=2 標(biāo)識(shí)走入死胡同的方格; ? 當(dāng)一個(gè)方格四個(gè)方向都搜索完還沒(méi)有走到出口 (存儲(chǔ)為2) ,說(shuō)明該方格或無(wú)路可走或只能走入了“死胡同”。 ? 從始點(diǎn)出發(fā),按深度優(yōu)先搜索方式搜索該圖,一直向著可通行的下一個(gè)方格行進(jìn),直到搜索到終點(diǎn)時(shí),便得到一條通路。 一個(gè)結(jié)點(diǎn)可能多次成為“活結(jié)點(diǎn)”。 一個(gè)結(jié)點(diǎn)只有一次成為“活結(jié)點(diǎn)”。若此時(shí)還有未訪問(wèn)點(diǎn),則以此作新出發(fā)點(diǎn)繼續(xù)。 2 例 47 三、深度優(yōu)先搜索 ? 1 圖的深度優(yōu)先遍歷 /搜索算法 ? 2 深度優(yōu)先搜索的應(yīng)用 ? 例 走迷宮問(wèn)題 ? 例 七巧板涂色問(wèn)題 ? 例 割點(diǎn)的判斷及消除 48 1 深度優(yōu)先搜索 ? 首先訪問(wèn)出發(fā)點(diǎn) V1,然后依次搜索其每個(gè)鄰接點(diǎn) W。 print(?‘,―,‖,sq[qe].x,―,‖,sq[qe].y,―)‖)。 } 46 ? out( ) / /輸出路徑 { print(―(‖sq[qe].x,―,‖,sq[qe].y,―)‖)。 //是否在迷宮內(nèi) if(maze[i][j]=1ormaze[i][j]=1) flag=0。 } check( ) { int flag=1。return。 maze[i][j]=1。 sq[qe].y=j。 if (check(i,j)=1) { qe=qe+1。k=4,k=k+1) //搜索可達(dá)的方格 { i=sq[qh].x+fx[k]。 while( qhqe) //當(dāng)隊(duì)不空 { qh=qh+1。 sq[1].x=1。 maze[1][1]=1。 } 2 廣度優(yōu)先搜索的應(yīng)用 例 45 search( ) {qh=0。 int qh,qe,i,j,k。 struct {int x,y,pre。 ? 問(wèn)題 4:在搜索路徑過(guò)程中,對(duì)搜索過(guò)的路徑如何標(biāo)記? 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 44 int maze[8][8]={{0,0,0,0,0,0,0,0},{0,1,1,1,1,0,1,0}, {0,0,0,0,1,0,1, 0},{0,1,0,0,0,0,1,0},{0,1,0,1,1,0,1,0},{0,1,0,0,0,0,1,1},{0,1,0,0,1,0,0,0},{0,1,1,1,1,1,1,0}}。 為了能夠倒推出路徑 43 2 例 ? 另開(kāi)辟 visited[ ][ ]數(shù)組記錄已搜索過(guò)的路徑。 ? struct {int x,y,pre。 ? 函數(shù) check,檢查當(dāng)前狀態(tài)是否合理。 二維數(shù)組 41 2 例 ? 對(duì)于迷宮中任意一點(diǎn) A(X,Y),有四個(gè)擴(kuò)展方向: ? 問(wèn)題 2:在尋找路徑過(guò)程中,活結(jié)點(diǎn)的擴(kuò)展? 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 向上 A(X–1,Y+0) 向下 A(X+1,Y+0) 向左 A(X+0,Y–1) 向右 A(X+0,Y+1) 當(dāng)對(duì)應(yīng)方格值為 0,就擴(kuò)展為 活結(jié)點(diǎn) 。 ? 從入口開(kāi)始出發(fā),廣度優(yōu)先搜索所有可到達(dá)的方格入隊(duì),再擴(kuò)展隊(duì)首的方格,直到搜索到出口時(shí),便得到一條通路。根據(jù)給定的迷宮,找出一條從入口到出口的路徑。走迷宮就是從一個(gè)小方格沿上、下、左、右四個(gè)方向到鄰近的方格,當(dāng)然不能穿墻。,sq[qe].city)。 print(39。 out( ) //輸出路徑 { print(sq[qe].city)。 } } } print(―No avaliable way.‖)。 if (sq[qe].city=8) { out( )。 sq[qe].pre=qh。i=n,i++) //擴(kuò)展結(jié)點(diǎn) if (jz[sq[qh].city][i]=1 and visited[i]=0) { qe=qe+1。 while( qhqe) //當(dāng)隊(duì)不空 { qh=qh+1。 sq[1].pre=0。 qe=1。 4) 設(shè)置數(shù)組 visited[]記錄已搜索過(guò)的城市 。 2) 數(shù)組 sq[]作為活結(jié)點(diǎn)隊(duì)的存儲(chǔ)空間 。 3)輸出最少城市線路 。重復(fù)以上步驟,直到城市 H入隊(duì)為止。 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 A B C D E F G H A B C D E F G H 城市交通圖對(duì)應(yīng)的鄰接距陣 34 1)將城市 A(編號(hào) 1)入隊(duì),隊(duì)首 qh置 0,隊(duì)尾 qe置 1?,F(xiàn)要找出一條經(jīng)過(guò)城市最少的一條路線并輸出該路線。 2 廣度優(yōu)先搜索的應(yīng)用 例 如上圖表示的是從城市 A到城市 H的交通圖。 EnQueue(Q,j)。j++) //擴(kuò)展結(jié)點(diǎn) if(g[i][j]==1 and visi
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1