Ich habe eine Adjazenzliste wie unten:Performante Weg Adjazenzliste auf Links für ungerichteten Graphen zu konvertieren
const list = [
[1, 6, 8],
[0, 4, 6, 9],
[4, 6],
[4, 5, 8],
// ...
];
Ich brauche eine Reihe von Links zu einem ungerichteten Graphen ohne Duplikate erstellen (Beispiel unten). Solche Verbindungen wie [0,1]
und [1,0]
gelten als Duplikate.
const links = [
[ 0, 1 ], // duplicates
[ 0, 6 ],
[ 0, 8 ],
[ 1, 0 ], // duplicates
[ 1, 4 ],
// ...
]
Im Moment mache ich es so:
const links = new Set;
const skip = [];
list.forEach((v, i) => {
v.forEach(j => {
if (skip.indexOf(j) === -1) {
links.add([i, j]);
}
})
skip.push(i);
})
Ich frage mich, ob es ein besseres Muster ist diese Art von Aufgabe auf massive Arrays zu lösen.