我有一个连接顶点的列表。
我的问题是如何创建和存储表示此列表的图表?
例如
5 2 4 5 1 3 4 2 4 5 1 2 3 5 1 3 4
1 连接到 2、4、5
2 -> 1, 3, 4
等等..
这是 2 个(相同的)表示。
我的第二个问题是如何获得该图的所有表示形式(在这张图片中我展示了 2 个,它们是相同的) 对于一个顶点列表只存在一个图形表示?如果更多,如何获得所有这些?
在图像中它们是相同的,不同的图纸。
最佳答案
5 means how many lines
1 > 2, 4, 5
2 > 1, 3, 4
3 > 2, 4, 5
4 > 1, 2, 3, 5
5 > 1, 3, 4
(我很傻,所以我需要在记事本中输入)。
#include <stdio.h>
class Cl_Graph;
class Cl_Chain;
class Cl_Vertex
{
friend Cl_Graph;
private:
Cl_Chain* mp_linkedTo;
Cl_Vertex();
void f_addLink(Cl_Vertex* in_link);
};
Cl_Vertex::Cl_Vertex()
{
mp_linkedTo= NULL;
}
class Cl_Graph
{
private:
int m_size;
Cl_Vertex* pm_vertexTable;
public:
Cl_Graph(int in_size);
void f_addLink(int in_index, int in_linkWith);
};
Cl_Graph::Cl_Graph(int in_size)
{
pm_vertexTable= new Cl_Vertex[m_size= in_size];
}
void Cl_Graph::f_addLink(int in_index, int in_linkWith)
{
if (in_index< m_size && in_linkWith< m_size)
{
pm_vertexTable[in_index].f_addLink(pm_vertexTable[in_linkWith]);
}
}
int main(int argc, char** argv)
{
Cl_Graph graph(5);
graph.f_addLink(1, 2);
graph.f_addLink(1, 4);
graph.f_addLink(1, 5);
// ...
return 0;
}
你可以从这样的事情开始。您甚至可以键入一个函数,该函数将获得一连串的顶点作为参数添加到图形中,而不是数组,它可以有一连串的链接链 :p 祝你好运!
关于c++ - 如何从顶点创建图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29225740/