我有一个连接的顶点列表。
我的问题是如何创建和存储代表此列表的图表?。
例如
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,它们是相同的) 对于一个顶点列表,只存在一个图形represantation?如果更多,如何获得所有这些?
在图像中它们是相同的,不同的图纸。
答案 0 :(得分:1)
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祝你好运!