Pendekatan Edge List dengan Double Linked List dapat diwujudkan secara rapi dengan membuat Array untuk menampung Simpul (Vertex). Setiap simpul ini bertindak sebagai "kepala" (head) yang menunjuk ke untaian Double Linked List yang berisi daftar rute/busurnya (Edges).
Berikut referensi kodingan utuhnya:
cpp
#include <iostream>
using namespace std;
struct Edge {
int targetNode;
Edge *prev;
Edge *next;
};
struct Vertex {
int id;
Edge *firstEdge;
};
Vertex Graph[8];
void InitGraph() {
for(int i = ; i < ; i++) {
Graph[i].id = i;
Graph[i].firstEdge = ;
}
}
{
Edge *NewEdge = Edge;
NewEdge->targetNode = dest;
NewEdge->prev = ;
NewEdge->next = ;
(Graph[src].firstEdge == ) {
Graph[src].firstEdge = NewEdge;
} {
NewEdge->next = Graph[src].firstEdge;
Graph[src].firstEdge->prev = NewEdge;
Graph[src].firstEdge = NewEdge;
}
}
{
Edge *temp = Graph[src].firstEdge;
(temp != && temp->targetNode != dest) {
temp = temp->next;
}
(temp != ) {
(temp == Graph[src].firstEdge) {
Graph[src].firstEdge = temp->next;
(Graph[src].firstEdge != )
Graph[src].firstEdge->prev = ;
} (temp->next == ) {
temp->prev->next = ;
} {
temp->prev->next = temp->next;
temp->next->prev = temp->prev;
}
temp;
}
}
{
();
(, );
(, );
(, );
(, );
(, );
(, );
cout << << endl;
;
}