40 Pertanyaan dan Jawaban Wawancara Struktur Data Teratas (2026)

Bersiap untuk wawancara Struktur Data? Saatnya mempertajam pemahaman Anda tentang bagaimana informasi diatur, diakses, dan dioptimalkan. Kalimat kedua harus menyertakan frasa yang sama persis dengan "Pertanyaan Wawancara Struktur Data", yang menunjukkan seberapa dalam kandidat memahami pemecahan masalah dan logika algoritmik.

Menguasai struktur data membuka beragam peluang karier di bidang rekayasa perangkat lunak, AI, dan desain sistem. Dengan pengalaman teknis dan keahlian di bidangnya yang solid, para profesional dapat secara efisien mengatasi tantangan umum, tingkat lanjut, dan tantangan nyata. Baik Anda seorang pengembang pemula, tingkat menengah, maupun senior, memahami keterampilan inti, menerapkan analisis, dan belajar dari tanya jawab akan membantu Anda lolos wawancara dan menunjukkan keahlian teknis yang dihargai oleh para pemimpin tim, manajer, dan profesional yang bekerja di bidang ini.

Berdasarkan wawasan dari lebih dari 80 pemimpin teknis dan 50 profesional perekrutan di berbagai industri, panduan ini menyusun pola, tren, dan harapan praktis yang mencerminkan metode evaluasi dunia nyata dan dinamika wawancara.

Pertanyaan dan Jawaban Wawancara Struktur Data

Pertanyaan dan Jawaban Wawancara Struktur Data Teratas

1) Jelaskan perbedaan antara array dan linked list, termasuk karakteristik, keuntungan, dan kerugiannya.

Larik dan daftar tertaut merupakan struktur linier fundamental dengan karakteristik memori dan kinerja yang berbeda. Larik menyimpan elemen secara berurutan, memungkinkan akses acak O(1) tetapi membuat penyisipan dan penghapusan menjadi mahal karena adanya pergeseran. Daftar tertaut menyimpan simpul secara tidak berurutan dengan pointer, memfasilitasi penyisipan atau penghapusan O(1) pada posisi yang diketahui tetapi menimbulkan akses O(n) dan overhead pointer. faktor Faktor-faktor yang memengaruhi seleksi meliputi lokalitas cache, pola mutasi, dan fragmentasi memori. Dalam skenario wawancara, Manfaat array menunjukkan keramahan cache CPU dan pengindeksan yang dapat diprediksi, sementara daftar tertaut bersinar ketika operasi siklus hidup didominasi oleh sambungan pada posisi sembarangan.

Jawab dengan contoh: array dinamis untuk buffer analitik batch; daftar tertaut untuk mengimplementasikan antrean LRU.

Aspek Array (Statis/Dinamis) Daftar Tertaut Tunggal Daftar Tertaut Ganda
Mengakses O(1) akses acak O (n) O (n)
Sisipkan/Hapus Tengah Pergeseran O(n) O(1) jika node diketahui O(1) jika node diketahui
Memori Bersebelahan; lebih sedikit penunjuk Penunjuk tambahan per node Dua pointer per node
Kelebihan Ramah cache; pengindeksan Sambungan cepat; ukuran fleksibel Operasi dua arah yang cepat
Kekurangan Sisipan tengah yang mahal Akses acak yang buruk Overhead memori yang lebih tinggi

๐Ÿ‘‰ Unduh PDF Gratis: Pertanyaan & Jawaban Wawancara Struktur Data


2) Bagaimana cara kerja hashing, dan apa saja jenis resolusi tabrakan yang ada? Diskusikan faktor-faktor seperti faktor beban dan pengubahan ukuran.

Hashing memetakan kunci ke indeks menggunakan fungsi hash. Karena beberapa kunci dapat dipetakan ke bucket yang sama, resolusi tabrakan diperlukan. Kunci faktor termasuk kualitas hash (keseragaman), faktor beban (n/bucket), ambang batas pengubahan ukuran, dan distribusi kunci. Pengubahan ukuran yang tepat mempertahankan ekspektasi O(1) yang diamortisasi untuk pencarian, penyisipan, dan penghapusan. Sistem nyata menggunakan pencampuran 64-bit dan seringkali menghindari bias modulo.

Cara yang berbeda untuk menyelesaikan tabrakan dan keuntungan/kerugian dirangkum di bawah ini, dengan jawaban dengan contoh seperti tabel simbol, cache dalam memori, dan pengindeksan.

metode karakteristik Kelebihan Kekurangan Example
Rantai Terpisah Bucket menyimpan daftar tertaut atau vektor kecil Sederhana; kinerja stabil Pengejaran penunjuk; cache hilang Java HashMap (pra-treeify)
Pengalamatan Terbuka (Linear) Selidiki slot berikutnya Ramah cache Pengelompokan primer Toko kunci sederhana
Pengalamatan Terbuka (Kuadrat) Kesenjangan tumbuh secara kuadratik Mengurangi pengelompokan Membutuhkan parameter yang cermat Tabel hash dalam kompiler
Double Hashing Hash kedua untuk ukuran langkah Penyebaran yang lebih baik Lebih banyak komputasi Beberapa mesin DB
Rantai Pohon Bucket menjadi BST kecil Kasus terburuk O(log n) Kompleksitas ekstra Java 8+ HashMap (treeify)

3) Apa siklus hidup cache LRU dan bagaimana ia dirancang menggunakan berbagai cara struktur data?

Cache LRU (Least Recently Used) mengeluarkan entri dengan waktu akses terlama. siklus hidup mencakup inisialisasi (kapasitas, tipe kunci/nilai), operasi steady-state (dapatkan/letakkan), pengusiran jika kapasitas dilanggar, dan pembongkaran (siram atau pertahankan). Desain kanonik menggabungkan peta hash untuk pengalamatan O(1) dengan daftar tertaut ganda untuk pembaruan terkini O(1). Cara yang berbeda termasuk menggunakan peta terurut atau deque dengan bookkeeperping. Manfaat termasuk pengusiran yang dapat diprediksi dan kinerja yang kuat untuk lokalitas temporal; kerugian termasuk overhead pointer dan kemungkinan amplifikasi penulisan di bawah thrash.

Jawab dengan contoh: Cache konten web, buffer halaman basis data, atau cache token inferensi model secara rutin menggunakan LRU atau variannya (LFU, ARC) ketika kebaruan berkorelasi dengan penggunaan di masa mendatang.


4) Di mana Trie (pohon awalan) lebih disukai daripada peta hash atau pohon pencarian biner? Sertakan kelebihan, kekurangan, dan contohnya.

Trie lebih disukai ketika kueri bergantung pada prefiks, alih-alih kunci utuh, yang memungkinkan operasi seperti pelengkapan otomatis, pemeriksaan ejaan, dan penghitungan prefiks dalam waktu O(L), dengan L adalah panjang string. Dibandingkan dengan peta hash, Trie secara alami mendukung jenis kueri prefiks dan pengurutan leksikografis tanpa pengurutan tambahan. Dibandingkan dengan BST pada string, Tries menghindari perbandingan string yang berulang di setiap simpul. Kelebihan termasuk penelusuran awalan deterministik dan enumerasi mudah; kerugian termasuk penggunaan memori yang tinggi karena node yang jarang dan konstanta yang lebih besar.

Jawab dengan contoh: Bilah pencarian yang menyarankan โ€œinterโ€”โ€ โ†’ โ€œinterviewโ€, tabel perutean IP (percobaan terkompresi), dan permainan kata mendapat manfaat dari penelusuran awalan dan kueri โ€œstartsWithโ€.


5) Pohon keseimbangan mandiri mana yang sebaiknya Anda pilih: AVL vs. Red-Black? Jelaskan perbedaan di antara keduanya beserta manfaat dan faktor-faktornya.

Baik AVL maupun Red-Black Tree menjamin tinggi O(log n), tetapi keduanya mengoptimalkan trade-off yang berbeda. AVL mempertahankan keseimbangan yang lebih ketat dengan menggunakan tinggi, menghasilkan pencarian yang lebih cepat dan lebih banyak rotasi pada pembaruan. Red-Black menggunakan properti warna untuk memungkinkan pohon yang sedikit lebih tinggi, sehingga mengurangi rotasi di bawah beban kerja penyisipan/penghapusan yang berat. Seleksi faktor meliputi rasio baca-berat versus tulis-berat, kompleksitas implementasi, dan faktor konstan. Manfaat AVL memiliki kinerja pencarian yang hampir optimal; keuntungan Merah-Hitam mencakup penyeimbangan yang lebih sederhana di bawah aliran pembaruan.

Jawab dengan contoh: Indeks dalam memori dengan lalu lintas sebagian besar-baca mungkin lebih menyukai AVL, sementara runtime bahasa dan peta berurutan (misalnya, std::map) sering kali mengadopsi Merah-Hitam.

Kriterium Pohon AVL Pohon Merah-Hitam
Kriteria Keseimbangan Perbedaan tinggi โˆˆ {-1,0,1} Properti warna Merah/Hitam
Tinggi Khas Lebih dekat ke logโ‚‚n Hingga ~2ร— logโ‚‚n
Rotasi Lebih sering Rata-rata lebih sedikit
Kecepatan Pencarian Lebih cepat (keseimbangan lebih ketat) Sedikit lebih lambat
Kecepatan Pembaruan Lebih lambat Lebih cepat
Organisasi Lebih banyak bandar judiping Banyak digunakan di perpustakaan

6) Apakah graf lebih diuntungkan dengan daftar ketetanggaan atau matriks ketetanggaan? Diskusikan berbagai cara, jenis graf, dan faktor pemilihannya.

Representasi grafik bergantung pada jenis (jarang vs padat, statis vs dinamis, terarah vs tak terarah, berbobot vs tak berbobot). Daftar kedekatan menyimpan tetangga per titik sudut dan ideal untuk grafik jarang (m โ‰ˆ n), menawarkan memori proporsional terhadap O(n + m) dan iterasi efisien di atas sisi-sisi. Matriks kedekatan menyediakan pemeriksaan keberadaan sisi O(1) dan operasi vektorisasi, sesuai dengan grafik padat dan algoritma yang membutuhkan operasi matriks cepat. Kunci faktor termasuk kepadatan, batas memori, kebutuhan bobot tepi, dan siklus hidup pembaruan.

Jawab dengan contoh: Jejaring sosial (jarang, berkembang) menggunakan daftar; matriks interaksi padat dalam komputasi ilmiah atau penutupan transitif yang dipercepat bitset dapat mendukung matriks. Untuk kode wawancara, gunakan daftar sebagai default kecuali pemeriksaan kepadatan atau tepi waktu konstan mendominasi.


7) Kapan Anda harus menggunakan Disjoint Set (Union-Find), dan apa karakteristik, keuntungan, dan kerugiannya?

Gunakan Union-Find ketika Anda perlu mempertahankan konektivitas dinamis di seluruh elemen yang membentuk jenis dari kelompok yang terpisah, menjawab โ€œapakah x dan y dalam himpunan yang sama?โ€ secara efisien. Dengan kompresi jalur ke serikat pekerja berdasarkan pangkat/ukuran, biaya diamortisasi per operasi mendekati O(ฮฑ(n)), di mana ฮฑ adalah fungsi Ackermann invers. karakteristik termasuk penunjuk induk, akar representatif, dan kompleksitas amortisasi yang hampir konstan. Kelebihan memiliki kinerja yang luar biasa untuk serikat pekerja dalam jumlah besar; kerugian termasuk ekspresivitas terbatas di luar konektivitas dan perlunya inisialisasi yang cermat.

Jawab dengan contoh: MST Kruskal, penghitungan komponen terhubung, simulasi perkolasi, dan grupping Semua string yang setara memanfaatkan Union-Find untuk penggabungan dan kueri yang cepat.


8) Dapatkah Anda membandingkan Dijkstra, Bellmanโ€“Ford, dan A* dan menyebutkan mana yang harus dipilih berdasarkan faktor-faktor yang berbeda seperti sisi negatif atau heuristik?

Algoritma jalur terpendek menargetkan kendala yang berbeda-beda. Dijkstra mengasumsikan bobot non-negatif dan menggunakan antrean prioritas untuk memperluas batas secara rakus; ini optimal untuk banyak skenario perutean. Bellmanโ€“Ford menangani sisi negatif dan mendeteksi siklus negatif pada biaya waktu yang lebih tinggi, membuatnya tangguh untuk deteksi arbitrase keuangan atau jaringan yang toleran terhadap kesalahan. A* melengkapi Dijkstra dengan heuristik yang dapat diterima untuk memandu pencarian, sering kali mengurangi simpul yang dieksplorasi secara dramatis ketika heuristik mendekati jarak sebenarnya. faktor yang mendorong pilihan meliputi karakteristik bobot tepi, kepadatan grafik, dan kelayakan pencarian yang diarahkan pada tujuan.

Jawab dengan contoh: Navigasi jalan menggunakan Dijkstra atau A* dengan heuristik Euclidean/Manhattan; deteksi anomali pertukaran mata uang mungkin memerlukan Bellmanโ€“Ford untuk menangani siklus negatif dengan aman.


9) Apakah rekursi wajib untuk penelusuran pohon, atau adakah cara lain untuk menerapkannya secara iteratif? Sertakan manfaat dan kerugiannya.

Rekursi tidak wajib; semua traversal (inorder, preorder, postorder, level-order) dapat diimplementasikan secara iteratif menggunakan tumpukan atau antrean eksplisit. Rekursi menawarkan kode yang ringkas dan penyelarasan alami dengan struktur pohon, tetapi berisiko menyebabkan luapan tumpukan pada pohon yang miring atau dalam dan dapat mengaburkan kontrol atas penggunaan sumber daya. Metode iteratif menyediakan manajemen tumpukan yang eksplisit, memungkinkan penghapusan rekursi ekor secara manual, dan seringkali menampilkan karakteristik kinerja yang lebih baik dalam bahasa dengan kedalaman rekursi terbatas. Manfaat pendekatan berulang mencakup penggunaan memori yang dapat diprediksi dan penelusuran kesalahan status yang lebih mudah. Kekurangan menyertakan kode yang lebih bertele-tele dan berpotensi menimbulkan kesalahan logika.

Jawab dengan contoh: Penelusuran inorder dengan tumpukan manual, penelusuran Morris untuk ruang O(1), dan BFS menggunakan antrean menunjukkan pola non-rekursif yang praktis.


10) Apakah Pohon Segmen atau Pohon Fenwick (Pohon Terindeks Biner) lebih disukai untuk kueri rentang? Berikan jenis kueri dan faktor seleksi.

Kedua struktur mendukung agregat awalan dan rentang dengan operasi logaritmik, tetapi mereka menargetkan nilai yang sedikit berbeda jenis Persyaratan. Pohon Segmen menyimpan agregat dalam interval dan dapat menangani beragam operasi (min, maks, fpb, monoid kustom) dan pembaruan rentang dengan propagasi lambat. Pohon Fenwick unggul dalam kueri frekuensi kumulatif atau penjumlahan dengan jejak memori yang lebih rendah dan kode yang lebih sederhana. Seleksi faktor termasuk variasi operasi, pola pembaruan (titik vs rentang), dan kendala memori.

Jawab dengan contoh: Gunakan Pohon Fenwick untuk penjumlahan awalan dinamis dalam pemrograman kompetitif atau tabel frekuensi; pilih Pohon Segmen saat Anda memerlukan kueri minimum rentang, penugasan rentang, atau untuk memelihara beberapa statistik secara bersamaan.


11) Apa saja karakteristik dan keuntungan heap dibandingkan dengan pohon pencarian biner yang seimbang?

A tumpukan adalah pohon biner lengkap yang memenuhi properti tumpukanโ€”kunci setiap simpul lebih besar (tumpukan maksimum) atau lebih kecil (tumpukan minimum) daripada kunci anak-anaknya. karakteristik mencakup penyimpanan berbasis array, tinggi yang dapat diprediksi (O(log n)), dan operasi prioritas tingkat akar yang efisien. Tidak seperti BST yang seimbang, heap tidak mempertahankan urutan penuh; hanya elemen ekstrem yang dapat diakses secara efisien. Kelebihan mencakup akses O(1) ke elemen terkecil atau terbesar dan penyisipan atau penghapusan O(log n), sehingga ideal untuk penjadwalan prioritas dan median.tracraja.

Jawab dengan contoh: Tumpukan mendukung algoritma seperti jalur terpendek Dijkstra, pengurutan tumpukan, dan antrean penjadwalan tugas waktu nyata.

Aspek tumpukan BST seimbang (misalnya, AVL)
Structure Pohon biner lengkap Pohon yang dipesan secara ketat
Mengakses Hanya elemen tercepat Semua elemen dipesan
Sisipkan/Hapus O (log n) O (log n)
Penelusuran Berurutan Tidak diurutkan Diurutkan
Gunakan Kasus Antrean prioritas, heapsort Peta yang dipesan, pengindeksan

12) Bagaimana analisis amortisasi dapat menjelaskan efisiensi penerapan antrian menggunakan dua tumpukan?

Analisis amortisasi memeriksa biaya rata-rata per operasi di seluruh rangkaian operasi, alih-alih kasus terburuk dari satu operasi. Dalam antrean dua tumpukan, elemen-elemen diantrekan dengan mendorong ke satu tumpukan (inStack) dan dikeluarkan dari antrian oleh popping dari yang lain (outStack). Kapan outStack kosong, semua elemen ditransfer sekali dari inStackSetiap elemen digerakkan paling banyak dua kaliโ€”dorong dan letupโ€”yang mengarah ke diamortisasi O(1) biaya per operasi, meskipun ada transfer O(n) sesekali.

Manfaat: throughput yang konstan dan dapat diprediksi, implementasi sederhana, dan lokalitas memori yang baik.

Jawab dengan contoh: Digunakan dalam buffer pesan yang efisien atau adaptor aliran input di mana pembacaan dan penulisan bersifat bursty tetapi seimbang.


13) Jelaskan perbedaan antara B-Trees dan B+ Trees dan uraikan kelebihan dan kekurangannya dalam pengindeksan.

Pohon B ke Pohon B+ adalah pohon pencarian multi arah yang banyak digunakan dalam basis data dan sistem berkas untuk pengindeksan berbasis disk. Kuncinya perbedaan antara Salah satunya adalah penempatan data: B-Trees menyimpan kunci dan nilai di simpul internal dan simpul daun, sedangkan B+ Tree menyimpan semua nilai hanya di simpul daun dan menghubungkan simpul daun ini secara berurutan. Tata letak ini memungkinkan B+ Tree untuk mendukung kueri rentang yang efisien melalui traversal tingkat daun.

Kriterium B-Pohon B+ Pohon
Penyimpanan Data Simpul internal + daun Hanya simpul daun
Kueri Rentang Lebih lambat Sangat cepat (daun yang terhubung)
Jalur Akses Variabel Seragam
Disk I / O Lebih sedikit untuk pencarian tunggal Dioptimalkan untuk pemindaian
Use Case Pengindeksan umum Basis data, sistem berkas

Jawab dengan contoh: MySQL ke PostgreSQL Gunakan Pohon B+ untuk indeks berkelompok dan sekunder untuk mengoptimalkan pembacaan blok dan mempertahankan urutan terurut secara efisien.


14) Di mana pengurutan topologi digunakan, dan apa saja cara yang ada untuk menghitungnya?

Pengurutan topologi mengurutkan simpul-simpul dari graf asiklik berarah (DAG) sehingga setiap sisi berarah (u โ†’ v) mendahului tujuannya. Hal ini penting untuk resolusi dependensi, alur kerja build, dan tugas penjadwalan. Dua cara yang berbeda ada:

  1. Algoritma Kahn (BFS) โ€” berulang kali menghilangkan simpul dengan derajat masuk nol, mempertahankan kompleksitas O(V + E).
  2. Pendekatan Berbasis DFS โ€” menjelajahi titik-titik secara rekursif, mendorongnya ke tumpukan pasca-kunjungan.

faktor untuk pilihan termasuk batas rekursi, ukuran grafik, dan kebutuhan untuk deteksi siklus.

Jawab dengan contoh: Alat pembangun (seperti Make, Maven) dan kompiler menggunakan tatanan topologi untuk memastikan dependensi diproses sebelum dependen.


15) Teknik manipulasi bit apa saja yang penting untuk mengoptimalkan algoritma? Berikan keuntungan dan contohnya.

Manipulasi bit memanfaatkan aritmatika biner untuk melakukan operasi lebih cepat dan dengan memori lebih sedikit. Teknik umum termasuk memeriksa genap/ganjil menggunakan n & 1, menukarping menggunakan XOR, mengisolasi bit terendah yang diatur melalui n & -n, dan menghitung bit dengan algoritma Kernighan.

Keuntungan: representasi data kompak, komputasi O(1) untuk bendera atau topeng, dan optimasi tingkat perangkat keras. kekurangan: mengurangi keterbacaan dan potensi munculnya bug halus.

Jawab dengan contoh: Filter Bloom, hashing kriptografi, enumerasi subset, dan pemrograman dinamis berbasis bitset sangat bergantung pada trik ini untuk efisiensi dalam sistem kritis waktu.


16) Apa saja cara yang berbeda untuk mendeteksi siklus dalam daftar tertaut atau grafik?

Deteksi siklus memastikan integritas struktur asiklik dalam aliran data dan kontrol.

  • Daftar Tertaut: The Floyd (TorKura-kura dan Kelinci) Algoritma ini menggunakan dua buah pointer yang bergerak dengan kecepatan berbeda, jika keduanya bertemu maka akan terjadi siklus (O(n) waktu, O(1) ruang).
  • Grafik: berbasis DFS deteksi menandai titik-titik dalam tumpukan rekursi untuk menemukan tepi belakang, sementara Temukan Serikat mendeteksi siklus selama penyatuan tepi dalam grafik tak berarah.

Keuntungan: overhead rendah dan integrasi mudah ke dalam logika traversal.

Jawab dengan contoh: Digunakan untuk mendeteksi perulangan pada tabel perutean, memverifikasi keabsahan DAG sebelum pengurutan topologi, atau memastikan referensi objek asiklik dalam grafik memori.


17) Apa yang membedakan antrian dengan deques dan buffer melingkar, dan apa keuntungan praktisnya?

A antre mengikuti urutan FIFO, sementara deque (antrian berujung ganda) memungkinkan penyisipan dan penghapusan di kedua ujungnya. penyangga melingkar menggunakan kembali array berukuran tetap dengan indeks kepala dan ekor untuk menerapkan antrean berkelanjutan tanpa alokasi memori dinamis.

Keuntungan antrian: kesederhanaan dan keteraturan yang dapat diprediksi; keuntungan deques: akses dua arah yang efisien; keuntungan buffer melingkar: memori terbatas dan efisiensi cache.

Structure OperaKetentuan yang Diizinkan Use Case
Antre Enqueue belakang, Dequeue depan Pekerjaan printer, penjadwalan tugas
Dek Kedua ujungnya Riwayat peramban, batalkan tumpukan
Bundar Buffer Antrean berkapasitas tetap Streaming waktu nyata, sistem tertanam

Jawab dengan contoh: Dalam tumpukan jaringan, buffer melingkar memelihara antrean paket berthroughput tinggi; deques umum ditemukan dalam algoritma jendela geser dan kebijakan caching.


18) Faktor apa saja yang memengaruhi kompleksitas waktu dan ruang dari operasi struktur data umum? Berikan tabel perbandingannya.

Kompleksitas muncul dari representasi internal, tata letak memori, dan pola akses. Misalnya, array menawarkan akses O(1) karena penyimpanan yang berdekatan, sementara struktur pohon atau grafik bergantung pada traversal logaritmik atau linear. Berikut perbandingan operasi inti:

Struktur data Mengakses Cari Menyisipkan Delete Catatan
susunan O (1) O (n) O (n) O (n) Bersebelahan; ukuran tetap
Daftar Tertaut O (n) O (n) O (1) O (1) Penunjuk di atas kepala
Tumpukan/Antrian O (n) O (n) O (1) O (1) Akses terbatas
Tabel Hash - O(1)* O(1)* O(1)* *Diamortisasi; dapat menurun menjadi O(n)
Pohon Pencarian Biner O (log n) O (log n) O (log n) O (log n) Diperlukan keseimbangan
tumpukan O (1) - O (log n) O (log n) Akses prioritas

Jawab dengan contoh: Mengetahui metrik ini sangat penting selama wawancara desain sistem di mana pertimbangan antara kecepatan, ruang, dan skalabilitas harus dibenarkan.


19) Kapan daftar lewati lebih disukai daripada pohon yang seimbang, dan apa keuntungannya?

Daftar lewati adalah struktur data probabilistik yang mempertahankan beberapa penunjuk maju pada berbagai tingkat untuk mempercepat pencarian, penyisipan, dan penghapusan ke O(log n) yang diharapkan. Struktur ini lebih mudah diimplementasikan dan dipelihara daripada pohon yang seimbang secara ketat, dengan mengorbankan batasan deterministik demi kesederhanaan.

Keuntungan: pengkodean yang lebih mudah, pembaruan bersamaan tanpa penyeimbangan ulang yang rumit, dan kinerja yang dapat diprediksi. kekurangan: penggunaan memori sedikit lebih tinggi karena penunjuk level acak.

Jawab dengan contoh: Daftar lewati digunakan dalam basis data dalam memori seperti Redis untuk set yang diurutkan dan pemindaian rentang, di mana konkurensi dan rata-rata yang dapat diprediksi lebih penting daripada jaminan kasus terburuk yang ketat.


20) Apa perbedaan antara Depth-First Search (DFS) dan Breadth-First Search (BFS), dan kapan masing-masing harus digunakan?

DFS melakukan eksplorasi sedalam mungkin sebelum kembalitracKing, ideal untuk menemukan konektivitas, jalur, atau melakukan pengurutan topologi. BFS menjelajahi level demi level, menemukan jalur terpendek dalam grafik tanpa bobot.

Kriterium DFS BFS
Struktur Data yang Digunakan Tumpukan / Rekursi Antre
Penggunaan Ruang O(kedalaman) O(lebar)
Jalan Ditemukan Mungkin tidak terpendek Terpendek dalam tidak tertimbang
Aplikasi Konektivitas, kembalitracraja Jalur terpendek, urutan level

faktor Pilihan panduannya meliputi kerapatan grafik, batas kedalaman rekursi, dan apakah jalur terpendek diperlukan.

Jawab dengan contoh: DFS mendukung deteksi siklus dan pemecahan labirin, sedangkan BFS mendukung penemuan rekan dalam jejaring sosial atau algoritma perutean.


21) Apa perbedaan antara string hashing dengan rolling hashing, dan apa saja kelebihan dan kekurangannya?

Pencirian string mengubah string menjadi nilai numerik menggunakan fungsi hash, memungkinkan perbandingan dan pencarian cepat dalam waktu rata-rata O(1). Hashing bergulir (misalnya, Rabinโ€“Karp) memungkinkan perhitungan ulang nilai hash yang efisien saat menggeser jendela di atas string, penting untuk pencarian substring.

Aspek Pencirian String Hashing Bergulir
Tujuan Simpan dan bandingkan string Pencarian substring, pencocokan pola
Kompleksitas O(1) setelah praproses O(n) keseluruhan untuk pencarian
Kelebihan Pemeriksaan kesetaraan cepat Pembaruan jendela geser yang efisien
Kekurangan Risiko tabrakan Membutuhkan aritmatika modular yang cermat

Jawab dengan contoh: Hashing string memberi kekuatan pada tabel simbol dan peta hash; hashing bergulir digunakan dalam deteksi plagiarisme, pencarian urutan DNA, dan perbandingan substring yang efisien.


22) Jelaskan bagaimana Pemrograman Dinamis (DP) berbeda dari Divide and Conquer dan sebutkan kelebihan dan kekurangannya.

Kedua teknik tersebut menguraikan masalah tetapi berbeda dalam hal tumpang tindih.ping submasalah dan memoisasi. Membagi dan menaklukkan memecahkan submasalah independen secara rekursif (misalnya, merge sort), sementara DP menyimpan hasil tumpang tindihping submasalah untuk menghindari penghitungan ulang (misalnya, Fibonacci, knapsack).

Aspek Bagi & Taklukkan Pemrograman Dinamis
Tumpang Tindih Submasalah None Menghadirkan
Substruktur Optimal Wajib Wajib
Memoisasi Tidak digunakan penting
Kompleksitas Waktu Seringkali eksponensial Seringkali polinomial

Keuntungan DP: meningkatkan efisiensi melalui caching. kekurangan: penggunaan memori dan kompleksitas yang lebih tinggi.

Jawab dengan contoh: DP muncul dalam penyelarasan sekuens, perkalian rantai matriks, dan pengoptimalan rute dinamis, sementara Divide and Conquer mendominasi algoritma penyortiran dan pencarian.


23) Apa perbedaan antara algoritma Prim dan Kruskal untuk menemukan Pohon Rentang Minimum (MST)?

Kedua algoritma menemukan MST yang menghubungkan semua simpul dengan bobot tepi minimal tetapi berbeda dalam pendekatannya. milik Prim menumbuhkan MST dari titik awal dengan memilih tepi berbiaya terendah yang berdekatan dengannya, sementara milik Kruskal mengurutkan semua tepi secara global dan menambahkannya secara bertahap menggunakan Himpunan Terpisah (Union-Find) untuk menghindari siklus.

Kriterium milik Prim milik Kruskal
metode Ekspansi simpul serakah Pemilihan tepi serakah
Struktur data Antrian prioritas Temukan Serikat
Tipe Grafik Padat Jarang
Kompleksitas O(log E) O(log E)

Jawab dengan contoh: Alat desain jaringan dan algoritma analisis klaster menggunakan Kruskal untuk grafik yang jarang, sementara perencana konektivitas padat lebih menyukai Prim.


24) Faktor apa saja yang menentukan pilihan antara percobaan dan pohon pencarian terner (TST) untuk penyimpanan string?

Tries dan TST keduanya mengindeks string karakter demi karakter, tetapi TST merupakan hibrida yang hemat ruang antara pohon pencarian biner dan tries. mencoba menggunakan percabangan untuk setiap simbol alfabet, yang menyebabkan penggunaan memori tinggi tetapi pencarian lebih cepat. TST menggunakan tiga penunjuk per nodeโ€”kurang, sama, dan lebih besarโ€”menawarkan penyimpanan kompak dengan akses yang sedikit lebih lambat.

Faktor Menyortir Pohon Pencarian Terner
Memori High Moderat
Kecepatan Pencarian lebih cepat Sedikit lebih lambat
Organisasi Lebih mudah Lebih kompleks
Kueri Rentang Didukung Didukung
Aplikasi Pelengkapan otomatis, pemeriksaan ejaan Kompresi kamus, sistem tertanam

Jawab dengan contoh: Uji coba cocok untuk sistem pelengkapan otomatis berskala besar; TST bekerja dengan baik dalam lingkungan tertanam dengan memori terbatas.


25) Jelaskan berbagai jenis strategi caching seperti LRU, LFU, dan FIFO serta kelebihan/kekurangannya.

Strategi penyimpanan sementara menentukan item mana yang akan dikeluarkan saat ruang habis.

  • LRU (Paling Jarang Digunakan): mengusir item terlama yang diakses; baik untuk lokalitas temporal.
  • LFU (Paling Jarang Digunakan): mengusir item yang paling jarang digunakan; cocok untuk distribusi popularitas yang stabil.
  • FIFO (Masuk Pertama, Keluar Pertama): mengusir dalam urutan penyisipan; sederhana tetapi suboptimal untuk pola berbasis kebaruan.
Kebijakan Keuntungan Kerugian
LRU Menangkap lokalitas temporal Menggebuk jika siklus besar
LFU Menangkap popularitas jangka panjang Pembaruan frekuensi yang mahal
FIFO Sederhana untuk diterapkan Mengabaikan pola penggunaan

Jawab dengan contoh: OperaSistem informasi, basis data, dan peramban web menggunakan kebijakan hibrid seperti ARC atau 2Q untuk menyeimbangkan pola penggunaan kembali jangka pendek dan jangka panjang.


26) Dapatkah Anda menjelaskan bagaimana optimasi Union-Find seperti kompresi jalur dan penyatuan berdasarkan peringkat meningkatkan kinerja?

Temukan Serikat mempertahankan set yang terpisah untuk memeriksa konektivitas secara efisien. Dua optimasi penting memastikan kinerja yang hampir konstan:

  • Kompresi Jalur: Selama find, setiap penunjuk induk simpul diperbarui untuk menunjuk langsung ke akar, sehingga meratakan pohon.
  • Serikat Pekerja Berdasarkan Pangkat/Ukuran: Selalu pasang pohon yang lebih kecil di bawah pohon yang lebih besar untuk meminimalkan ketinggian.

Bersama-sama, mereka mengurangi waktu amortisasi per operasi menjadi O(ฮฑ(n)), yang secara efektif konstan untuk semua ukuran masukan praktis.

Jawab dengan contoh: Optimalisasi ini merupakan inti dari algoritma Kruskal dan masalah berbasis DSU seperti konektivitas jaringan, lingkaran pertemanan, dan pengelompokan.


27) Apa manfaat dan kerugian menggunakan peta hash versus pohon pencarian biner untuk penyimpanan nilai kunci?

Peta hash menyediakan akses yang diharapkan O(1) menggunakan fungsi hash, sementara BST (seimbang) menyediakan akses kasus terburuk O(log n) sambil menjaga keteraturan.

Kriterium Peta Hash Pohon Pencarian Biner
Mengakses O(1) rata-rata O (log n)
Pemeliharaan Pesanan None Inversal pesanan
Memori Biaya overhead yang lebih tinggi Moderat
Kasus terburuk O(n) (tabrakan) O (log n)
Thread Keselamatan Lebih keras Lebih mudah dengan penguncian

Keuntungan: peta hash untuk pencarian cepat; BST untuk kueri rentang.

Jawab dengan contoh: Gunakan peta hash dalam cache dan kamus; gunakan BST untuk peta berurutan dan penjadwalan berbasis prioritas.


28) Bagaimana penyimpanan string dan struktur data yang tidak dapat diubah memengaruhi kinerja dan memori dalam bahasa pemrograman modern?

Magang string menyimpan literal string yang identik dalam satu lokasi memori, menghemat memori dan meningkatkan kecepatan perbandingan melalui kesetaraan referensi. Struktur data yang tidak dapat diubah (misalnya, dalam Java, Scala, atau pemrograman fungsional) mencegah modifikasi setelah pembuatan, meningkatkan keamanan dan prediktabilitas thread.

Keuntungan: konkurensi yang disederhanakan, perilaku deterministik, dan berbagi yang aman; kekurangan: penyalinan yang sering untuk pembaruan dan tekanan pengumpulan sampah yang lebih tinggi.

Jawab dengan contoh: JavaKolam Renang Tali dan PythonCaching bilangan bulat kecil menggunakan interning; daftar dan peta yang tidak dapat diubah dalam bahasa fungsional meningkatkan stabilitas komputasi paralel.


29) Apa saja aplikasi utama struktur data di dunia nyata di seluruh domain modern?

Struktur data mendukung setiap disiplin komputasi. contoh:

  • Array/Daftar: pemrosesan gambar, blok memori.
  • Tumpukan/Antrian: penguraian kompiler, penjadwalan multi-utas.
  • Pohon: basis data, sistem berkas, model hierarkis.
  • Grafik: jaringan sosial, rute transportasi, koneksi saraf.
  • Tumpukan: manajemen acara waktu nyata, simulasi.
  • Tabel Hash: caching, pengindeksan, dan deduplikasi.

Jawab dengan contoh: Pipeline AI menggunakan grafik untuk ketergantungan. tracSistem blockchain menggunakan Merkle Tree untuk verifikasi kriptografi. Setiap pilihan bergantung pada latensi, frekuensi pembaruan, dan batasan memori.


30) Ringkaslah kompleksitas Big-O dari operasi struktur data umum untuk referensi wawancara cepat.

Memahami kompleksitas waktu sangat penting untuk diskusi kinerja.

| Operation / Struktur | Larik | Daftar Tertaut | Tumpukan | Antrean | BST (Seimbang) | Tabel Hash | Tumpukan |

|โ€”|โ€”|โ€”|โ€”|โ€”|โ€”|โ€”|

| Akses | O(1) | O(n) | O(n) | O(n) | O(log n) | โ€” | O(1) |

| Pencarian | O(n) | O(n) | O(n) | O(n) | O(log n) | O(1)* | O(n) |

| Sisipkan | PADA(n) | HAI(1) | HAI(1) | HAI(1) | HAI(log n) | HAI(1)* | HAI(log n) |

| Hapus | PADA(n) | HAI(1) | HAI(1) | HAI(1) | HAI(log n) | HAI(1)* | HAI(log n) |

*Kompleksitas yang diamortisasi.

Jawab dengan contoh: Tabel ini sering diminta dalam wawancara untuk menilai kesadaran kandidat terhadap trade-off selama diskusi desain sistem.


31) Bagaimana cara kerja Bloom Filter, dan apa saja kekurangannya?

A Filter Mekar adalah struktur data probabilistik yang hemat ruang yang digunakan untuk menguji apakah suatu elemen mungkin dalam satu set or pastinya tidak ada di dalamnya. Metode ini menggunakan array bit dan beberapa fungsi hash independen. Saat memasukkan elemen, bit pada posisi yang diberikan oleh setiap hash akan diatur ke 1. Untuk menguji keanggotaan, semua bit tersebut diperiksa; jika ada yang bernilai 0, elemen tersebut dipastikan tidak ada.

Keuntungan: jejak memori rendah dan operasi waktu konstan. kekurangan: positif palsu (tidak pernah negatif palsu) dan kurangnya dukungan penghapusan dalam bentuk dasar.

Jawab dengan contoh: Digunakan dalam cache web (pemeriksaan) URL eksistensi), basis data (HBase, Cassandra), dan filter transaksi blockchain untuk pengujian keanggotaan yang cepat.


32) Jelaskan perbedaan antara salinan struktur data dangkal dan dalam dengan contoh.

A salinan dangkal hanya menduplikasi struktur tingkat atas tetapi berbagi referensi ke objek bersarang, sementara salinan mendalam mengkloning semua elemen bersarang secara rekursif untuk membuat objek yang sepenuhnya independen.

Faktor: mutabilitas dan kedalaman referensi menentukan mana yang akan digunakan. Keuntungan salinan dangkal: kecepatan dan biaya memori rendah; kerugian: efek samping yang tidak diinginkan ketika objek bersarang bermutasi.

Jawab dengan contoh: In Python, copy.copy() melakukan salinan dangkal, sementara copy.deepcopy() melakukan kloning penuh. Di C++, konstruktor salinan sering mengendalikan perbedaan iniโ€”misalnya, menduplikasi daftar tertaut simpul demi simpul menghindari penunjuk yang menggantung.

Aspek Salinan dangkal Salinan Dalam
Referensi bersama Independen
Kecepatan Lebih cepat Lebih lambat
Memori Menurunkan Tertinggi
Aman untuk Objek yang Dapat Diubah Tidak Ya
Contoh Penggunaan Berbagi cache Serialisasi data

33) Apa yang dimaksud dengan matriks jarang dan padat, dan bagaimana keduanya disimpan secara efisien?

A matriks jarang sebagian besar mengandung nol elemen, sementara matriks padat memiliki sedikit atau tidak ada nol. Menyimpan matriks renggang dalam array 2D biasa membuang-buang memori. Untuk mengoptimalkan, format khusus seperti COO (Daftar Koordinat), CSR (Baris Jarang Terkompresi), atau CSC (Kolom Jarang Terkompresi) simpan hanya elemen bukan nol dan indeksnya.

Keuntungan: memori yang berkurang drastis dan aritmatika yang lebih cepat untuk kumpulan data besar yang terisi nol. kekurangan: pengindeksan yang rumit dan overhead akses acak.

Jawab dengan contoh: Representasi jarang digunakan dalam vektor fitur pembelajaran mesin, matriks kedekatan grafik, dan sistem rekomendasi, di mana angka nol mendominasi kumpulan data.

dibentuk Data tersimpan Penggunaan umum
MENDEKUT Triplet (baris, kolom, nilai) Pertukaran masukan/keluaran
TJSL Penunjuk baris, indeks kolom, nilai Perkalian matriks-vektor
CSC Penunjuk kolom, indeks baris, nilai Pemecah jarang

34) Diskusikan berbagai cara untuk merepresentasikan pohon: representasi berbasis array vs pointer.

Struktur pohon dapat direpresentasikan dengan array or pointer, masing-masing memiliki kekurangan dalam kinerja dan fleksibilitas.

  • Berbasis array: Cocok untuk pohon biner lengkap di mana anak-anak dari simpul i berada pada indeks 2i+1 ke 2i+2Menawarkan memori bersebelahan dan akses berbasis indeks yang cepat.
  • Berbasis penunjuk: Ideal untuk pohon yang tidak beraturan atau dinamis. Setiap simpul menyimpan referensi ke anak-anaknya, memungkinkan penyisipan dan penghapusan yang fleksibel.
Aspek Representasi Array Representasi Pointer
Tata Letak Memori Berdekatan Node yang terhubung
Waktu akses O(1) melalui indeks O(1) melalui pointer
keluwesan Terbatas High
Use Case Tumpukan Pohon umum, BST

Jawab dengan contoh: Tumpukan biner menggunakan array untuk efisiensi cache, sementara pohon direktori file atau pohon sintaksis menggunakan tata letak berbasis penunjuk untuk pertumbuhan dinamis.


35) Bagaimana penyelarasan dan pengisian memori memengaruhi kinerja struktur data?

Penyelarasan memori memastikan bahwa data disimpan di alamat yang sesuai untuk arsitektur CPU (misalnya, penyelarasan 4-byte untuk int). Lapisan adalah ruang ekstra yang tidak terpakai yang ditambahkan di antara bidang struktur untuk memenuhi batasan penyelarasan. Akses yang tidak selaras dapat menurunkan kinerja atau menyebabkan pengecualian perangkat keras pada beberapa sistem.

Keuntungan: akses lebih cepat karena siklus pengambilan yang selaras; kerugian: potensi pemborosan memori.

Jawab dengan contoh: Dalam C/C++, kompiler dapat menyisipkan padding di antara anggota struktur. Pengembang sering kali menyusun ulang kolom atau menggunakan #pragma pack untuk meminimalkan bantalan. Misalnya, menyusun ulang struktur dari {char, int} untuk {int, char} dapat mengurangi total penggunaan memori dari 8 byte menjadi 5.


36) Apa itu templat penelusuran grafik, dan mengapa pola BFS dan DFS sering digunakan kembali dalam wawancara?

Templat traversal adalah pola algoritmik yang dapat digunakan kembali yang mengeksplorasi grafik secara sistematis. BFS (Pencarian Luas Pertama) menjelajahi tetangga level demi level menggunakan antrian, sementara DFS (Pencarian Mendalam Pertama) menjelajahi jalur yang lebih dalam menggunakan rekursi atau tumpukan eksplisit.

Templat ini digunakan kembali karena banyak masalahโ€”jalur terpendek, komponen terhubung, pengurutan topologi, dan pemeriksaan bipartitโ€”dapat disederhanakan dengan sedikit modifikasi.

Keuntungan: boilerplate minimal, kompleksitas yang dapat diprediksi O(V+E), dan fleksibilitas. Jawab dengan contoh: Mendeteksi pulau dalam matriks, menemukan urutan transformasi terpendek dalam tangga kata, atau memvalidasi pohon semuanya merupakan adaptasi templat BFS/DFS.


37) Jelaskan struktur data yang sadar-cache dan yang tidak sadar-cache serta manfaatnya.

Sadar terhadap cache Struktur data dirancang dengan pengetahuan eksplisit tentang ukuran baris cache dan hierarki memori. Struktur ini mengoptimalkan tata letak data (misalnya, matriks yang diblokir) untuk meminimalkan cache miss. Tidak menyadari cache struktur, sebaliknya, dirancang secara rekursif agar berkinerja baik di semua level cache tanpa mengetahui parameter cache.

Keuntungan: kedua pendekatan mengurangi latensi memori dan meningkatkan throughput; tidak menyadari cache metode lebih portabel, sementara sadar-cache yang dapat mencapai kinerja puncak yang lebih tinggi.

Jawab dengan contoh: B-Tree yang sadar-cache dan array yang diblokir meningkatkan kinerja DB; varian yang tidak menyadari-cache seperti pohon van Emde Boas atau tata letak matriks rekursif unggul dalam sistem cache multi-level.


38) Bandingkan struktur data persisten vs. sementara dan kasus penggunaannya.

Struktur data sementara (yang tradisional) dapat berubah dan hanya mencerminkan status terkini. Struktur data persisten mempertahankan versi sebelumnya setelah modifikasi, memungkinkan pembuatan versi dan pengembalian. Diimplementasikan melalui penyalinan jalur or pembagian struktural, mereka mengaktifkan prinsip kekekalan pemrograman fungsional.

Milik Tdk kekal Gigih
Mutabilitas Yg mungkin berubah Kekal
Memory Usage Menurunkan Lebih tinggi (karena sejarah)
Concurrency Tidak aman Aman
Example Array, Daftar Tertaut Daftar Tetap (Scala), Peta Clojure

Jawab dengan contoh: Sistem kontrol versi, fungsi undo di editor, dan buku besar blockchain bergantung pada struktur persisten untuk data historis. tracKeandalan tanpa pembaruan yang merusak.


39) Jelaskan siklus hidup pengumpulan sampah (GC) dan dampaknya pada struktur data.

The siklus hidup pengumpulan sampah terdiri dari alokasi, menandai objek yang dapat dijangkau, sweeping yang tidak direferensikan, dan pemadatan memori. GC secara otomatis mengklaim kembali memori, tetapi hal ini dapat memengaruhi kinerja tergantung pada frekuensi pembuatan objek dan masa hidup struktur.

Keuntungan: menyederhanakan manajemen memori dan mencegah kebocoran; kerugian: jeda yang tidak terduga dan overhead CPU.

Jawab dengan contoh: GC Generasional, yang digunakan dalam JVM, membagi objek berdasarkan usiaโ€”objek berumur pendek pada generasi muda dikumpulkan secara berkala, sementara objek berumur panjang pada generasi tua dipadatkan sesekali. Struktur data dengan banyak simpul berumur pendek (misalnya, daftar tertaut sementara) dapat memicu siklus GC yang sering.


40) Jelaskan faktor-faktor yang mempengaruhi penyetelan faktor beban dalam tabel hash dan pengaruhnya terhadap kinerja.

The faktor beban (ฮฑ = n / jumlah bucket) mengukur kepenuhan tabel. ฮฑ yang lebih tinggi meningkatkan probabilitas tabrakan, sehingga menurunkan kinerja, sementara ฮฑ yang rendah membuang-buang memori. Implementasi umum akan mengubah ukuran ketika ฮฑ melebihi 0.7โ€“0.8.

Faktor: ukuran dataset, distribusi hash, pola akses, dan kendala memori. Keuntungan dari ฮฑ tinggi: pemanfaatan memori yang lebih baik; kerugian: akses lebih lambat dan overhead pengulangan.

Jawab dengan contoh: Java'S HashMap menggandakan kapasitasnya ketika ฮฑ > 0.75 untuk mempertahankan kinerja amortisasi O(1). Faktor beban penyetelan sangat penting untuk cache dan sistem waktu nyata di mana latensi yang dapat diprediksi lebih besar daripada biaya memori.


๐Ÿ” Pertanyaan Wawancara Struktur Data Teratas dengan Skenario Dunia Nyata & Respons Strategis

1) Bisakah Anda menjelaskan perbedaan antara array dan linked list?

Diharapkan dari kandidat: Pewawancara ingin menguji pemahaman Anda tentang alokasi memori dan efisiensi akses data.

Contoh jawaban:

Array adalah kumpulan elemen yang disimpan dalam lokasi memori yang berdekatan, yang memungkinkan akses langsung ke setiap elemen menggunakan indeksnya. Di sisi lain, linked list terdiri dari simpul-simpul yang setiap simpulnya berisi data dan referensi ke simpul berikutnya. Array menyediakan akses yang lebih cepat tetapi memiliki ukuran yang tetap, sementara linked list menawarkan penggunaan memori yang dinamis dan kemudahan penyisipan atau penghapusan.


2) Bagaimana Anda memutuskan struktur data mana yang akan digunakan untuk masalah tertentu?

Diharapkan dari kandidat: Pewawancara mencari pemikiran analitis dan pemahaman tentang keseimbangan antara berbagai struktur.

Contoh jawaban:

Saya mengevaluasi sifat permasalahanโ€”apakah memerlukan pencarian cepat, penyisipan atau penghapusan yang sering, atau penelusuran terurut. Misalnya, saya menggunakan tabel hash untuk pencarian cepat, daftar tertaut untuk penyisipan dinamis, dan pohon untuk data hierarkis. Memilih struktur data yang tepat adalah tentang menyeimbangkan kompleksitas waktu dan ruang.


3) Jelaskan skenario di mana Anda menggunakan tumpukan atau antrean secara efektif.

Diharapkan dari kandidat: Pewawancara ingin menilai pengetahuan aplikasi praktis.

Contoh jawaban:

Dalam peran saya sebelumnya, saya menerapkan antrean untuk mengelola tugas latar belakang dalam layanan web. Antrean ini memastikan tugas diproses sesuai urutan kedatangannya, sehingga menjaga keadilan dan efisiensi. Demikian pula, saya menggunakan tumpukan untuk mengelola pemanggilan fungsi selama algoritma rekursif untuk membalikkan daftar tertaut.


4) Apa perbedaan antara pohon biner dan pohon pencarian biner (BST)?

Diharapkan dari kandidat: Pewawancara sedang menguji kejelasan konseptual.

Contoh jawaban:

Pohon biner adalah struktur hierarkis di mana setiap simpul dapat memiliki hingga dua anak. Namun, pohon pencarian biner mempertahankan properti pengurutan tertentu di mana anak kiri berisi nilai yang lebih kecil daripada induknya, dan anak kanan berisi nilai yang lebih besar daripada induknya. Properti ini memungkinkan operasi pencarian yang efisien dalam waktu logaritmik rata-rata.


5) Dapatkah Anda menjelaskan situasi menantang saat Anda mengoptimalkan penggunaan struktur data?

Diharapkan dari kandidat: Pewawancara ingin mengevaluasi keterampilan pemecahan masalah dan pengoptimalan Anda.

Contoh jawaban:

Di posisi sebelumnya, saya mengerjakan proyek yang awalnya menggunakan daftar untuk menangani kumpulan data besar, yang mengakibatkan masalah kinerja. Saya menggantinya dengan peta hash untuk mengurangi waktu pencarian dari O(n) menjadi O(1). Perubahan ini secara signifikan meningkatkan waktu respons dan skalabilitas aplikasi.


6) Bagaimana tabel hash menangani tabrakan?

Diharapkan dari kandidat: Pewawancara memeriksa pemahaman implementasi internal dan strategi pemecahan masalah.

Contoh jawaban:

Tabel hash menangani tabrakan menggunakan teknik seperti chaining dan pengalamatan terbuka. Dalam chaining, setiap indeks dalam tabel hash menunjuk ke daftar tertaut pasangan kunci-nilai. Dalam pengalamatan terbuka, urutan probing digunakan untuk menemukan slot berikutnya yang tersedia. Metode yang dipilih bergantung pada faktor-faktor seperti faktor beban yang diharapkan dan batasan memori.


7) Jelaskan konsep rekursi dan bagaimana kaitannya dengan struktur data.

Diharapkan dari kandidat: Pewawancara ingin mengukur pemahaman Anda tentang desain algoritma.

Contoh jawaban:

Rekursi adalah metode di mana suatu fungsi memanggil dirinya sendiri untuk menyelesaikan submasalah yang lebih kecil dari suatu tugas yang lebih besar. Metode ini umumnya digunakan dengan struktur data seperti pohon dan grafik, di mana traversal secara alami cocok dengan pendekatan rekursif. Misalnya, algoritma traversal pohon seperti preorder dan inorder dapat diimplementasikan secara elegan menggunakan rekursi.


8) Ceritakan kepada saya tentang saat Anda harus men-debug implementasi struktur data.

Diharapkan dari kandidat: Pewawancara ingin menilai kemampuan analitis dan debugging Anda.

Contoh jawaban:

Di pekerjaan saya sebelumnya, saya menemukan bug dalam implementasi daftar tertaut yang menyebabkan simpul-simpul terlewati selama traversal. Saya menggunakan pendekatan debugging langkah demi langkah untuk memeriksa penugasan pointer dan menemukan kesalahan dalam logika penyisipan simpul. Setelah memperbaiki penanganan pointer berikutnya, masalah tersebut teratasi.


9) Bagaimana Anda mendeteksi siklus dalam daftar tertaut?

Diharapkan dari kandidat: Pewawancara ingin melihat apakah Anda mengetahui algoritma standar dan alasannya.

Contoh jawaban:

Saya akan menggunakan Algoritma Deteksi Siklus Floyd, yang juga dikenal sebagai pendekatan kura-kura dan kelinci. Algoritma ini menggunakan dua penunjuk yang bergerak dengan kecepatan berbeda. Jika keduanya bertemu, itu menandakan adanya siklus. Metode ini efisien karena beroperasi dalam waktu O(n) dan menggunakan ruang ekstra O(1).โ€


10) Bagaimana Anda menangani desain struktur data dengan kendala memori?

Diharapkan dari kandidat: Pewawancara ingin memahami pendekatan Anda terhadap manajemen sumber daya yang efisien.

Contoh jawaban:

"Dalam peran terakhir saya, saya mengoptimalkan penyimpanan data untuk aplikasi dengan lalu lintas tinggi dengan mengganti objek dengan struktur yang lebih hemat memori seperti array bertipe primitif. Saya juga menerapkan teknik seperti lazy loading dan kompresi untuk data yang jarang diakses. Tujuannya adalah mempertahankan kinerja tanpa melampaui batas memori."

Ringkaslah postingan ini dengan: