请原谅我的新手,但我在尝试理解以下内容时遇到了困难:
有人能解释一下这种数据结构是如何工作的,如果用以下方式初始化它,会得到什么结果:
非常感谢!
class Graph
{
int V; // No. of vertices
list<int> *adj; // A dynamic array of adjacency lists
void bridgeUtil(int v, bool visited[], int disc[], int low[], int parent[]);
public:
Graph(int V); // Constructor
void addEdge(int v, int w); // function to add an edge to graph
void bridge(); // prints all bridges
};
Graph::Graph(int V)
{
this->V = V;
adj = new list<int>[V];
}
void Graph::addEdge(int v, int w)
{
adj[v].push_back(w);
adj[w].push_back(v); // Note: the graph is undirected
}
有人能解释一下这种数据结构是如何工作的,如果用以下方式初始化它,会得到什么结果:
Graph g1(5);
g1.addEdge(1, 0);
g1.addEdge(0, 2);
g1.addEdge(2, 1);
g1.addEdge(0, 3);
g1.addEdge(3, 4);
非常感谢!
std::list
吗?如果是这样,那么注释是错误的 - 它不是动态数组。它是一个列表。 - Kevin