A
Dvejetainis medis
Yra įvairių dvejetainių medžių rūšys bet čia mes kalbėsime apie skirtumą Pilnas dvejetainis medis ir Pilnas dvejetainis medis .
Visas dvejetainis medis:
Pilnas dvejetainis medis yra dvejetainis medis, kuriame visi mazgai turi 0 arba 2 palikuonis . Kitaip tariant, pilnas dvejetainis medis yra dvejetainis medis, kuriame visi mazgai, išskyrus lapų mazgus, turi du palikuonis.
mašinraščio jungiklis
Visas dvejetainis medis
atrankos rūšiavimasLeisti, i būti vidinių mazgų skaičius
n turi būti bendras mazgų skaičius
l būti lapų skaičiumi
l būti lygių skaičiumiTada
Lapų skaičius yra (i + 1) .
Bendras mazgų skaičius yra (2i + 1) .
Vidinių mazgų skaičius yra (n – 1) / 2 .
Lapų skaičius yra (n + 1) / 2 .
Bendras mazgų skaičius yra (2l – 1) .
Vidinių mazgų skaičius yra (l – 1) .
Lapų skaičius yra didžiausias (2l-1) .
Visas dvejetainis medis:
Sakoma, kad dvejetainis medis yra a pilnas dvejetainis medis jei visi jo lygiai, išskyrus galbūt paskutinį lygį, turi didžiausią galimų mazgų skaičių ir visi mazgai paskutinis lygis rodomas kuo toliau į kairę .
Visiškas dvejetainis medis
Yra 2 taškai, kuriuos galite atpažinti iš čia,
- Visada pirmiausia turi būti užpildyta kairioji lapo mazgo pusė.
- Nebūtina, kad paskutinis lapo mazgas turėtų tinkamą brolį ir seserį.
Peržiūrėkite šiuos pavyzdžius, kad geriau suprastumėte visą ir pilną dvejetainį medį.
java8 funkcijos
1 pavyzdys:
Nei pilnas, nei pilnas
- Mazgas C todėl turi tik vieną vaiką, tai nėra pilnas dvejetainis medis.
- Mazgas C taip pat turi dešinį vaiką, bet neturi kairiojo vaiko, todėl tai taip pat nėra pilnas dvejetainis medis.
Taigi aukščiau parodytas dvejetainis medis yra nei pilnas, nei pilnas dvejetainis medis.
2 pavyzdys:
burbulų rūšiavimas algoritmePilnas, bet ne pilnas
- Visi mazgai turi vieną 0 arba 2 palikuonys, todėl tai pilnas dvejetainis medis .
Tai nėra pilnas dvejetainis medis, nes mazgas B neturi vaikų, o mazgas C turi vaikų, o pagal pilną dvejetainį medį mazgai turėtų būti užpildyti iš kairė pusė .Taigi aukščiau parodytas dvejetainis medis yra a Pilnas dvejetainis medis ir tai yra nėra pilnas dvejetainis medis.
3 pavyzdys:
Pilnas, bet ne pilnas
Tai pilnas dvejetainis medis, nes visi mazgai yra užpildyti.
- Mazgas B turi tik vieną vaiką, todėl tai nėra pilnas dvejetainis medis.
Taigi aukščiau parodytas dvejetainis medis yra a Pilnas dvejetainis medis ir tai yra ne pilnas dvejetainis medis.
4 pavyzdys:
Pilnas ir pilnas
kompiuterių tipai
- Tai yra Pilnas dvejetainis medis, nes visi mazgai yra liko užpildytas .
- Visi mazgai turi vieną 0 arba 2 palikuonys, todėl tai yra a pilnas dvejetainis medis .
Taigi aukščiau parodytas dvejetainis medis yra tiek pilnas, tiek pilnas dvejetainis medis.
Taip ne. | Pilnas dvejetainis medis | Visas dvejetainis medis |
1. | Visame dvejetainiame medyje paskutinio lygio mazgas gali turėti tik vieną atžalą. | Visame dvejetainiame medyje mazgas negali turėti tik vieno vaiko. |
2. | Visame dvejetainiame medyje mazgas turi būti užpildytas iš kairės į dešinę. | Visame dvejetainiame medyje nėra mazgų užpildymo tvarkos. |
3. | Užbaigti dvejetainiai medžiai daugiausia naudojami krūvomis pagrįstose duomenų struktūrose. | Visas dvejetainis medis nėra pritaikytas, bet taip pat vadinamas tinkamu dvejetainiu medžiu. |
4. | Visas dvejetainis medis taip pat vadinamas beveik pilnu dvejetainiu medžiu. | Visas dvejetainis medis taip pat vadinamas tinkamu dvejetainiu medžiu arba 2 medžiu. |
5 | Viso dvejetainio medžio visas lapų mazgas turi būti lygiai tokiame pačiame gylyje. | Viso dvejetainio medžio lapų lygis nebūtinai turi būti tame pačiame gylyje. |