Graph 如何从节点和圆弧的数据结构生成图形数据结构?

Graph 如何从节点和圆弧的数据结构生成图形数据结构?,graph,nodes,kruskals-algorithm,Graph,Nodes,Kruskals Algorithm,我制作了以下节点和圆弧结构: struct arc { int length; string start; string end; arc(int k,string s,string e) { this->length = k; this->start = s; this->end = e; } }; struct node { string name; double x; double y; vector<arc>

我制作了以下节点和圆弧结构:

struct arc
{
int length;
string start;
string end;

    arc(int k,string s,string e)
    {
    this->length = k;
    this->start = s;
    this->end = e;
    }
};

struct node
{
string name;
double x;
double y;
vector<arc> link;

node(string n,double xx,double yy)
    {
    this->name = n;
    this->x = xx;
    this->y = yy;
    }
};
struct弧
{
整数长度;
字符串开始;
弦端;
弧(整数k、字符串s、字符串e)
{
这个->长度=k;
此->开始=s;
这个->结束=e;
}
};
结构节点
{
字符串名;
双x;
双y;
矢量链;
节点(字符串n,双xx,双yy)
{
该->名称=n;
这个->x=xx;
这->y=yy;
}
};
现在我想制作一个图形数据结构,这样我就可以在上面实现Kruskal的算法。 我不明白如何利用这两种结构。 每个节点都存储其名称和坐标,以及进出该节点的弧的信息。 所以我有一个节点集群,但如何将所有节点链接在一起呢。这里没有根节点。我应该向我的graph类添加什么?
我仔细研究了邻接列表和矩阵,但不明白如何将我的想法与它们联系起来?请解释

您需要定义一个标准来比较两个弧并确定哪一个弧“更小”

给定两个节点的坐标,知道如何比较它们
根据您的条件对圆弧进行排序
从一个包含所有节点但没有弧的空图形开始
使用DisjointSet结构维护有关连接组件的信息(以避免循环)
将弧从小到大添加到图形中,如果循环,则忽略弧

Kruskal算法:“s_算法

分离集: