Матрица смежности для квадратной решетки в C ++ - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь написать код на C ++ для вычисления матрицы смежности для графа квадратной решетки N на N, то есть графа, в котором все (i, j) узлы связаны с (i + 1, j), ( i-1, j), (i, j-1) и (i, j + 1) узлов.

Я попробовал следующий код, который работает только для решетки 2 на 2, но не Не для высших порядков. Может ли кто-нибудь помочь мне в том, как сделать этот код подходящим для поиска матрицы смежности для квадратной решетки N на N?

Любая помощь действительно приветствуется.

#include<iostream>
#include <cmath> 
using namespace std;
int vertArr[20][20]; //the adjacency matrix initially 0
int count = 0;
void displayMatrix(int v) {
   int i, j;
   for(i = 0; i < v; i++) {
      for(j = 0; j < v; j++) {
         cout << vertArr[i][j] << " ";
      }
      cout << endl;
   }
}
void add_edge(int u, int v) {       //function to add edge into the matrix
   vertArr[u][v] = 1;
   vertArr[v][u] = 1;
}
main(int argc, char* argv[]) {
   int N= 2;
   int v =pow(N,2);    //there are N^2 vertices in the N by N graph

   int ii;
   for(ii=0; ii<v; ii++){
     add_edge(ii, ii+1);
     add_edge(ii, ii-1);
     add_edge(ii, ii+N);
     add_edge(ii, ii-N);
   }
   displayMatrix(v);
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...