【发布时间】:2013-07-29 14:01:04
【问题描述】:
我正在尝试用 C++ 实现一个图形。我使用包含两个变量的结构来表示图中的节点 -
a) 一个包含有关节点的一些信息的整数。
b) 一个列表,其中包含与其相连的其他顶点的索引。
以下是代码。
// Graphs using adjacency list
#include <iostream>
#include <list>
#include <cstdlib>
using namespace std;
// structure to represent a vertex(node) in a graph
typedef struct vertex{
int info;
list<int> adj; // adjacency list of edges contains the indexes to vertex
} *vPtr;
int main(){
vPtr node = (vPtr)malloc(sizeof(struct vertex));
node->info = 34; // some arbitrary value
(node->adj).push_back(2); // trying to insert a value in the list
return 0;
}
代码编译正常,但在我推回列表中的一个元素时出现运行时错误。我的结构有什么问题吗?
我正在使用代码块和 GNU GCC、C++ 98 编译器来编译我的代码。
【问题讨论】:
-
vPtr 声明有些可疑。
-
@Jim :我不这么认为,因为代码只有在我推回列表时才会出现问题。如果我删除该行,那么代码就可以正常工作。
标签: c++ list graph structure adjacency-list