Я изучаю структуру данных графа в C, и я представил граф с матрицей смежности.До сих пор я создал матрицу смежности, которая означает (по крайней мере, в моем понимании), что я указал «между какими вершинами будут ребра», хотя я еще не создал никаких реальных узлов.Теперь, после того, как я это сделал, я хочу заполнить свой граф узлами, которые содержат мой собственный тип данных (скажем, каждый узел в структуре, которая содержит некоторые элементы).Я много гуглил, но все, что я нашел, это примеры того, как создать матрицу смежности, но объяснения на этом не остановятся, не показывая, как вы фактически вставляете новые элементы в граф.
Я написал код для заполненияматрица смежности.Я предоставил следующий код:
#include<stdio.h>
#define V 5
void init(int arr[][V])
{
int i,j;
for(i = 0; i < V; i++)
for(j = 0; j < V; j++)
arr[i][j] = 0;
}
void addEdge(int arr[][V],int src, int dest)
{
arr[src][dest] = 1;
}
void printAdjMatrix(int arr[][V])
{
int i, j;
for(i = 0; i < V; i++)
{
for(j = 0; j < V; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main()
{
int adjMatrix[V][V];
init(adjMatrix);
addEdge(adjMatrix,0,1);
addEdge(adjMatrix,0,2);
addEdge(adjMatrix,0,3);
addEdge(adjMatrix,1,3);
addEdge(adjMatrix,1,4);
addEdge(adjMatrix,2,3);
addEdge(adjMatrix,3,4);
printAdjMatrix(adjMatrix);
return 0;
}
Теперь мой вопрос: нужно ли заполнять мой граф новыми узлами, нужно ли мне создать еще один массив размером noofnodes x noofnodes и заполнить его?Это правильный способ сделать это или есть другой способ?Я хочу знать, как нормальный и продуманный способ сделать это.
Спасибо за чтение.