#include
int a[10][10] = ,,,
,,,,
,,
};/*0表示海洋,1-9表示陸地的海拔,降落在(6,8)處,計算出該島的面積(有多少個格仔)。
即從(6,8)處進行廣度優先搜尋, sum ++
*/struct note;
int main();
int startx = 6, starty = 8;
intsum=0;
int next[4][2] = ,,,};//右下左上
//初始化佇列
head = 1;
tail = 1;
que[tail].x = startx;
que[tail].y = starty;
book[startx][starty] = 1;
tail++;
sum++;
while(head < tail)
if(a[tx][ty] > 0 && book[tx][ty] == 0)
}head++;
}printf("該島嶼面積為%d.\n",sum);
getchar();
return
0;}
#include
int a[10][10] = ,,,
,,,,
,,};int next[4][2] = ,,,};//右下左上
/*0表示海洋,1-9表示陸地的海拔,降落在(6,8)處,計算出該島的面積(有多少個格仔)。
即從(6,8)處進行深度優先搜尋, sum ++
*/int book[10][10] = ;
int sum;
void dfs(int x,int y)
if(a[tx][ty] > 0 && book[tx][ty] == 0)
}return ;
}int main()
著色法
#include
int a[10][10] = ,,,
,,,,
,,};/*
0表示海洋,1-9表示陸地的海拔。求有幾個島嶼。
*/int next[4][2] = ,,,};//右下左上
int book[10][10] = ;
int sum;
void dfs(int x,int y, int color)
if(a[tx][ty] > 0 && book[tx][ty] == 0)
}return ;
}int main()}}
//輸出著色後的地圖
for(i=0; i<=9;i++)
printf("\n");
}printf("共有%d個小島。",-num);
getchar();
return 0;
}
4 5 2寶島探險 BFSearch
includeusing namespace std struct note int main 定義乙個標記陣列並全部初始化為0 int a 51 51 用來儲存地圖 int i,j,k,sum,max 0,mx,my,n,m,startx,starty,tx,ty 定義乙個方向陣列 int nex...
DFS BFS解決寶島探險
dfs寶島探險 思路 注意此處我們把與小哼降落點上下左右相連線的陸地視為同一島嶼,0表示海洋,1 9表示陸地。計算小哼降落地所在島的面積 即有多少格仔 include includeusing namespace std int a 51 51 用來儲存地圖 int book 51 51 sum,n...
寶島探險深度優先搜尋(著色法)
寫這一篇是為了上篇 ycb惹女朋友生氣了 上篇用到了著色法,下面主要介紹一下什麼是用深度優先搜尋實現的著色法 1.求從起點開始連線的一整塊陸地的面積,即從起點出發向四周搜尋,每搜到一塊陸地就加一,直到周圍全是海洋,並且對陸地進行染色,即標記上負數的數字。include include include...