#43830: C++詳解-BFS


toseanlin@gmail.com (Dr. SeanXD)

學校 : 不指定學校
編號 : 158065
來源 : [220.130.163.227]
最後登入時間 :
2025-07-30 21:23:37

使用 BFS,並且要紀錄每一次走過的點,只要走過就不能再走,不能會造成無窮迴圈。另外,每走到一個點就要將目前位置的字元改成「+」。

 

範例程式碼

#45300: Re: C++詳解-BFS


rsj00008 (西加008)

學校 : 基隆市私立二信高級中學
編號 : 49436
來源 : [114.24.22.164]
最後登入時間 :
2025-10-08 12:16:07

使用 BFS,並且要紀錄每一次走過的點,只要走過就不能再走,不能會造成無窮迴圈。另外,每走到一個點就要將目前位置的字元改成「+」。

 

用DFS程式較簡潔吧
void dfs(int r,int c)
{
   map[r][c]='+';
   若上下左右(nr,nc) 不出界且為'-'則 dfs(nr,nc)
}
====主程式
只要讀入n, map, i,j後dfs(i,j)
最後印出即可