Latihan 1 dari materi Graph Representation di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function untuk graph tak berarah dengan node bernomor 0 sampai n - 1:
listToMatrix(adj, n): adj adalah adjacency list berupa array berisi array (adj[u] adalah tetangga node u). Kembalikan matrix n × n berisi 0 dan 1. Untuk tiap tetangga v dari u, isi matrix[u][v]danmatrix[v][u] dengan 1, walaupun adj cuma menulis jalannya di satu sisi. Diagonal tetap 0.
matrixToList(matrix): kebalikannya. Kembalikan array berisi array: untuk tiap baris, index kolom yang bernilai 1, urut dari kecil ke besar.
Kode di bawah kedua function jangan diubah. Output-nya harus lima baris ini, berurutan:
0,1,1,0 (baris 0 matrix)
1,1,0,1 (baris 2 matrix)
1,2 (tetangga node 0)
0,1,3 (tetangga node 2)
2 (tetangga node 3)
Kedua function juga dicek dengan graph lain.
Hint
Mulai dari matrix n × n yang isinya 0 semua, lalu ubah jadi 1 tiap kali ketemu jalan. Untuk kebalikannya, baca tiap baris dari kiri ke kanan.
listToMatrix: dua loop, satu untuk tiap node u dan satu untuk tiap tetangga v di adj[u], lalu isi dua sel. matrixToList: untuk tiap baris, push index kolom yang nilainya 1 ke array baru.
listToMatrix: const matrix = Array.from({ length: n }, () => new Array(n).fill(0)); lalu for (const v of adj[u]) { matrix[u][v] = 1; matrix[v][u] = 1; } untuk tiap u. matrixToList: return matrix.map((baris) => { const t = []; for (let v = 0; v < baris.length; v++) { if (baris[v] === 1) t.push(v); } return t; });
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...