C++ 读取对阵矩阵:计算节点度和模块归属
C++ 读取对阵矩阵:计算节点度和模块归属
本文将介绍如何使用 C++ 读取对阵矩阵,并计算图中每个节点的度和所属模块。
步骤:
-
创建对阵矩阵: 使用 C++ 中的
vector容器创建表示对阵矩阵的二维数组。例如:vector<vector<int>> adjacencyMatrix。 -
读取矩阵数据: 使用循环逐行读取输入,并将每个元素存储在二维数组对应位置。
vector<vector<int>> adjacencyMatrix(n, vector<int>(n, 0)); // 初始化二维数组 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> adjacencyMatrix[i][j]; } } ``` -
计算节点度: 统计每个节点行或列中非零元素的个数,即为节点的度。
for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (adjacencyMatrix[i][j] != 0) { degree[i]++; } } } ``` -
初始化模块: 创建一个一维数组存储每个节点所属的模块,初始时每个节点属于自己的模块。
for (int i = 0; i < n; i++) { module[i] = i; // 初始时每个节点属于自己的模块 } ``` -
计算模块归属: 遍历每个节点,检查其邻居节点的模块是否与当前节点相同。若不同,则将当前节点的模块更新为邻居节点的模块。
cpp for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (adjacencyMatrix[i][j] != 0 && module[i] != module[j]) { module[i] = module[j]; // 更新当前节点的模块为邻居节点的模块 } } }
现在,你已经成功读取了对阵矩阵,并计算了每个节点的度和所属模块。
原文地址: https://www.cveoy.top/t/topic/fwxD 著作权归作者所有。请勿转载和采集!