Inilah sumber pertanyaan saya.
Diberi pohon penyeimbang sendiri (AVL), kode metode yang mengembalikan median.
(Median: nilai numerik yang memisahkan separuh lebih tinggi dari sampel data dari bagian bawah. Contoh: jika seri adalah
2, 7, 4, 9, 1, 5, 8, 3, 6
maka median adalah 5.)
Saya dapat menawarkan solusi berikut:
- Lintasi pohon yang diberikan, kembalikan jumlah elemen.
- Lintasi
n / 2 + 1
(jikan
ganjil) pohon itu kembali menerapkan berjalan pohon berurutan. Nilain / 2 + 1
elemen th adalah median.
Tapi saya bisa melakukannya dengan pohon pencarian biner, bukan? Apakah ada algoritma yang lebih baik untuk AVL?