我正在尝试实现一个简单的邻接列表。我知道数组的索引是此时顶点的键。
例如:如果我有格式的边缘:(开始,结束,成本)(1,2,4)(2,3,5)(1,3,27)(3,4,8)
我会有一个数组
[0] -> 空
[1] -> 2|4 -> 3|27 -> 空
[2] -> 3|5 -> 空
[3] -> 4|8 -> 空
一个问题是持有边缘的容器有指针,但插入其中的元素(边缘)没有。我迷路了。
编辑这篇文章,因为我不知道如何在评论中添加代码。
struct Node{
Edge *head;
Node *next;
}
Node *root;
void adjacencyList::insert(const Edge &edge)
{
if(root == NULL)
{
root = new Node;
root->head = edge;
}
else
{
while(root != NULL)
{
root = root->next;
if(root == NULL);
{
root = new Node;
root->head = edge;
root = root ->next;
}
}
}
}
边缘对象有 3 个属性(源、目标、成本) 现在它什么也不做,只是在链表中不断添加边缘。如何按来源分隔列表?