在实现邻接表时,一维向量是否会自动转换为二维向量?

问题描述

这里是初学者,我正在实现一个邻接列表来表示 C++ 中的图形,但我在概念上被困在下面的代码片段中。

void addEdge(vector<int> adj[],int s,int d) {
  adj[s].push_back(d);
  adj[d].push_back(s);
}

vector<int> adj[] 将包含所有节点的列表 我的问题是我们有 1D 向量 adj[],我们如何能够在 adj[] 的单单元格/索引中推送多个元素,这不需要像 {{1 }}

通过推送我想澄清的多个元素,该特定节点的相邻顶点将被推送到该特定索引中

完整代码::

vector<vector<int>> adj[];

输出

// Adjacency List representation in C++

#include <bits/stdc++.h>
using namespace std;

// Add edge
void addEdge(vector<int> adj[],int d) {
  adj[s].push_back(d);
  adj[d].push_back(s);
}

// Print the graph
void printGraph(vector<int> adj[],int V) {
  for (int d = 0; d < V; ++d) {
    cout << "\n Vertex "
       << d << ":";
    for (auto x : adj[d])
      cout << "-> " << x;

    printf("\n");
    cout << "\nsize=" << adj[d].size()<<"\n";
  }
}

int main() {

  int V = 5;

  // Create a graph
  vector<int> adj[V];

  // Add edges
  addEdge(adj,1);
  addEdge(adj,2);
  addEdge(adj,3);
  addEdge(adj,1,2);
  printGraph(adj,V);

  cout << "\n\nmatrix cell"
       << adj[0][2];
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)