【发布时间】:2014-10-20 16:51:01
【问题描述】:
作为二叉树和邻接表的经典指针表示的替代方案,什么是使用 C++ 中的 STL 实现图和树的好方法,以使其动态化并最大限度地减少内存泄漏和段错误。
我发现的邻接列表的一个这样的实现是在结构中使用 STL 列表,
struct Node {
int data;
list<int> adj;
};
然后声明一个结构指针数组
struct Node *nodes[10005];
但这一切都是在考虑整数数据,如果要存储的数据不是整数怎么办,如何最大限度地利用STL?
【问题讨论】:
-
"以便使其动态化并最大限度地减少内存泄漏和段错误" ... "然后声明一个结构指针数组"。如果您正在寻找动态大小和安全的段错误,那么静态大小的原始数组肯定不是要走的路。
-
what if the data to be stored is not integer- 使用模板。我不知道您将如何编写数据结构,但节点向量可能比任意数量的固定数组更好。
标签: c++ graph stl tree implementation