問題概述:
給出乙個n×m矩陣,對於矩陣元素(x,y)稱其上下左右四個位置(x,y+1),(x,y-1),(x+1,y),(x-1,y)是「相鄰」的。如果乙個矩陣的元素中只有0,1,若有若干個1是相鄰的,則這些1就構成了乙個「塊」,求矩陣中塊的個數。
例如:6×7矩陣中,塊的個數為4
0 1 1 1 0 0 1**:0 0 1 0 0 0 0
0 0 0 0 1 0 0
0 0 0 1 1 1 0
1 1 1 0 1 0 0
1 1 1 1 0 0 0
#include#includeusing namespace std;
const int maxn=100;
struct nodenode;
int n,m;//矩陣大小為n ×m
int martix[maxn][maxn];//01矩陣
bool inq[maxn][maxn]=; //判斷是否進入過佇列
int x[4]=;
int y[4]=;//注意x和y的對應關係
bool judge(int x,int y)
void bfs(int x,int y)
} }}int main()
}
BFS 求給定的矩陣中「塊」的個數
給出乙個 m n 的矩陣,矩陣中的元素為 0 或 1。稱位置 x,y 與其上 下 左 右四個位置是相鄰的。如果矩陣中有若干個 1 是相鄰的 不必考慮兩兩相鄰 那麼稱這些 1 構成了乙個 塊 求給定矩陣中 塊 的個數。4思路 對於矩陣 matrix m n 遍歷每個元素,如果為0,則跳過 如果為 1 ...
交換鍊錶中相鄰的元素
成對交換鍊錶中相鄰的元素 直接交換鍊錶中兩個元素值,給元素交換賦值,而不用改變指標方向 但是這種方法中當單個節點中有很多欄位的時候 比如 name,age,效率較低!package suanfa.warppairs description 兩兩交換鍊錶中相鄰節點 通過直接交換元素值,不改變指標方向的...
BFS寬搜模板(求矩陣中連通塊的個數)
給出乙個n m的矩陣,元素為0或1.稱每個位置的上下左右與之相鄰。如果矩陣中有若干個1是相鄰的,那麼這些1就構成了乙個塊。求矩陣中 塊 的個數。include include include include include include using namespace std typedef lo...