给定两个无向图

G1和 G2 ,判断它们是否同构。图的同构是指两个图的节点可以通过某种重新编号的方式完全匹配,且边的连接关

系一致。

为了简化问题,假设图的节点编号从 0 到 n-1,并且图的边以邻接表的形式给出。下面程序中横线处应该给出的是

()

 #include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std;  string graphHash(vector<vector<int>>& graph) {   vector<string> nodeHashes(graph.size());   for (int i = 0; i < graph.size(); i++) {      vector<int> neighbors = graph[i];      sort(neighbors.begin(), neighbors.end());      string hash;      for (int neighbor : neighbors) {         ——————————————————————————      }      nodeHashes[i] = hash;   }   sort(nodeHashes.begin(), nodeHashes.end());   string finalHash;   for (string h : nodeHashes) {      finalHash += h + ";";   }   return finalHash; }  int main() {   int n;   cin >> n;    vector<vector<int>> G1(n);   for (int i = 0; i < n; i++) {      int k;      while (cin >> k) {         G1[i].push_back(k);         if (cin.get() == '\n') break;      }   }    vector<vector<int>> G2(n);   for (int i = 0; i < n; i++) {      int k;      while (cin >> k) {         G2[i].push_back(k);         if (cin.get() == '\n') break;      }   }    string hash1 = graphHash(G1);   string hash2 = graphHash(G2);    if (hash1 == hash2) {      cout << "YES" << endl;   } else {      cout << "NO" << endl;   }    return 0; }
填写答案