Latihan 1 dari materi Graph — Konsep di Struktur Data — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi class Graph (graph tanpa arah) dengan adjacency list dari Map:
constructor(): bikin Map kosong, misalnya this.adjacency = new Map().
addVertex(v): tambahkan node v dengan array tetangga kosong, kalau belum ada.
addEdge(v1, v2): catat edge di kedua arah: v2 masuk ke tetangga v1, dan v1 masuk ke tetangga v2. Kalau salah satu node belum terdaftar, daftarkan dulu.
neighbors(v): kembalikan array tetangga v, urut sesuai urutan edge ditambahkan.
degree(v): kembalikan jumlah tetangga v.
Kode di bawah starter mencetak empat baris, urut: B,C, A,D, 2, 1.
Class-nya juga dites dengan graph lain.
Hint
Tiap node punya array tetangganya sendiri, disimpan di Map dengan node sebagai key. Graph tanpa arah berarti satu edge dicatat di dua array.
Pakai this.adjacency = new Map(). addVertex memakai has dan set. addEdge memanggil addVertex untuk kedua node, lalu push ke dua array. degree adalah panjang array tetangga.