C++ 读取对阵矩阵:计算节点度和模块归属

本文将介绍如何使用 C++ 读取对阵矩阵,并计算图中每个节点的度和所属模块。

步骤:

  1. 创建对阵矩阵: 使用 C++ 中的 vector 容器创建表示对阵矩阵的二维数组。例如:vector<vector<int>> adjacencyMatrix

  2. 读取矩阵数据: 使用循环逐行读取输入,并将每个元素存储在二维数组对应位置。

    
    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];       }   }   ```
    
    
  3. 计算节点度: 统计每个节点行或列中非零元素的个数,即为节点的度。

    
    for (int i = 0; i < n; i++) {       for (int j = 0; j < n; j++) {           if (adjacencyMatrix[i][j] != 0) {               degree[i]++;           }       }   }   ```
    
    
  4. 初始化模块: 创建一个一维数组存储每个节点所属的模块,初始时每个节点属于自己的模块。

    
    for (int i = 0; i < n; i++) {       module[i] = i; // 初始时每个节点属于自己的模块   }   ```
    
    
  5. 计算模块归属: 遍历每个节点,检查其邻居节点的模块是否与当前节点相同。若不同,则将当前节点的模块更新为邻居节点的模块。

    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]; // 更新当前节点的模块为邻居节点的模块 } } }

现在,你已经成功读取了对阵矩阵,并计算了每个节点的度和所属模块。

C++ 读取对阵矩阵:计算节点度和模块归属

原文地址: https://www.cveoy.top/t/topic/fwxD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录