単純な隣接リストを実装しようとしています。配列のインデックスがその時点での頂点のキーであることを理解しています。
例:フォーマットのエッジがある場合:(開始、終了、コスト)(1,2,4)(2,3,5)(1,3,27)(3,4,8)
私は次のような配列を持っているでしょう
[0]-> null
[1]-> 2 | 4-> 3 | 27-> null
[2]-> 3 | 5-> null
[3]-> 4 | 8-> null
1つの問題は、エッジを保持するコンテナにはポインタがありますが、それらに挿入された要素(エッジ)にはないということです。道に迷いました。
コメントにコードを入れる方法がわからないので、この投稿を編集します。
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つのプロパティ(ソース、宛先、コスト)があります。現在、これはリンクリストにエッジを追加し続けるだけです。リストをソースごとに分けるにはどうすればよいですか?