Sobes.tech
Junior

Kas yra dvejetainis medis?

sobes.tech AI

Atsakymas iš AI

Dvigubas medis yra duomenų struktūra, panaši į medį, kur kiekvienas mazgas gali turėti ne daugiau kaip du vaikus: kairįjį ir dešinįjį.

Pagrindinės savybės:

  • Kiekvienas mazgas turi nuorodą į savo reikšmę (duomenis) ir nuorodas į kairįjį ir dešinįjį vaiką (gali būti tušti).
  • Yra šakninis mazgas — aukščiausias medis, neturintis protėvio.
  • Lapai — mazgai be vaikų.
  • Pošakiai — kiekvienas iš dviejų medžių, sudarančių šaknies medį.

Pagrindiniai tipai:

  • Pilnas dviejų vaikų medis: kiekviename lygyje, išskyrus galbūt paskutinį, visi mazgai turi du vaikus, o paskutinio lygio visi mazgai yra paslinkti į kairę.
  • Tobulas dviejų vaikų medis: visi lygiai yra pilnai užpildyti, ir kiekvienas mazgas (išskyrus lapus) turi du vaikus.
  • Subalansuotas dviejų vaikų medis: kiekvieno mazgo kairiojo ir dešiniojo pošakio aukščiai skiriasi ne daugiau kaip 1.

Taikymas QA:

  • Testų hierarchija: testavimo scenarijų arba testų rinkinių organizavimas medžio struktūroje geresniam skaitomumui ir navigacijai.
  • Duomenų paieška ir rūšiavimas: dviejų vaikų paieškos medžiai naudojami greitam paieškai, įterpimui ir šalinimui (pavyzdžiui, našumo testavimui).
  • Duomenų struktūrizavimas: testų duomenų arba vykdymo rezultatų pateikimas ir organizavimas.

Python pavyzdys, kaip atvaizduoti mazgą:

class Node:
    def __init__(self, value):
        self.value = value  # Mazgo reikšmė
        self.left = None    # Kairysis vaikas
        self.right = None   # Dešinysis vaikas