Saya hanya ingin tahu apakah seseorang dapat menjelaskan definisi pohon seimbang bagi saya. Saya berpendapat bahwa "sebuah pohon seimbang jika setiap sub-pohon seimbang dan tinggi dari dua sub-pohon berbeda paling banyak satu.
Saya minta maaf jika ini pertanyaan bodoh, tetapi apakah definisi ini berlaku untuk setiap simpul sampai ke daun pohon atau hanya ke sub-pohon kiri dan kanan langsung dari akar? Saya kira cara lain untuk membingkai ini adalah, apakah mungkin simpul internal pohon menjadi tidak seimbang dan seluruh pohon tetap seimbang?
Jawaban:
Batasan umumnya diterapkan secara rekursif ke setiap subpohon. Artinya, pohon hanya seimbang jika:
Menurut ini, pohon berikutnya seimbang:
Yang berikutnya tidak seimbang karena anak-anak pohon C berbeda 2 tingginya:
Meskipun demikian, batasan spesifik dari poin pertama bergantung pada jenis pohonnya. Yang tercantum di atas adalah tipikal pohon AVL .
Pohon merah-hitam , misalnya, memaksakan pembatas yang lebih lembut.
sumber
Ada beberapa cara untuk mendefinisikan "Seimbang". Tujuan utamanya adalah untuk menjaga kedalaman semua node
O(log(n))
.Tampak bagi saya bahwa kondisi keseimbangan yang Anda bicarakan adalah untuk pohon AVL .
Berikut adalah definisi formal dari kondisi keseimbangan pohon AVL :
Pertanyaan selanjutnya, apa itu " tinggi "?
Ada satu kasus aneh tapi umum:
Misalnya, anak kiri root adalah
null
:Dua contoh lagi untuk ditentukan:
Ya, Contoh Pohon Seimbang :
Tidak, Bukan Contoh Pohon yang Seimbang :
sumber
Tidak ada perbedaan antara kedua hal ini. Pikirkan tentang itu.
Mari kita ambil definisi yang lebih sederhana, "Bilangan positif adalah meskipun itu nol atau angka minus dua itu genap." Apakah ini mengatakan 8 adalah meskipun 6 genap? Atau apakah ini mengatakan 8 adalah bahkan jika 6, 4, 2, dan 0 adalah genap?
Tidak ada bedanya. Jika dikatakan 8 bahkan jika 6 genap, ia juga mengatakan 6 bahkan jika 4 genap. Dan demikian juga dikatakan 4 adalah meskipun 2 genap. Dan dengan demikian dikatakan 2 bahkan jika 0 genap. Jadi jika dikatakan 8 adalah meskipun 6 genap, itu (secara tidak langsung) mengatakan 8 adalah bahkan jika 6, 4, 2, dan 0 adalah genap.
Di sini sama saja. Setiap sub-pohon tidak langsung dapat ditemukan oleh rantai sub-pohon langsung. Jadi meskipun hanya berlaku langsung ke sub-pohon langsung, itu masih berlaku secara tidak langsung ke semua sub-pohon (dan juga semua node).
sumber
Pohon seimbang adalah pohon yang tingginya berurutan menurut log (jumlah elemen dalam pohon).
Definisi yang diberikan "satu pohon seimbang dari setiap sub-pohon seimbang dan tinggi dari dua sub-pohon berbeda paling banyak satu" diikuti oleh pohon AVL.
Karena, pohon AVL seimbang tetapi tidak semua pohon yang seimbang adalah pohon AVL, pohon yang seimbang tidak memegang definisi ini dan simpul internal dapat menjadi tidak seimbang di dalamnya. Namun, pohon AVL membutuhkan semua node internal untuk diseimbangkan.
sumber
Tujuan pohon yang seimbang adalah mencapai daun pada lintasan minimum (ketinggian min). Derajat pohon adalah jumlah cabang dikurangi 1. Pohon yang seimbang mungkin bukan Biner.
sumber
sumber