Sobes.tech
Junior

Kaip veikia dvejetainis medis?

sobes.tech AI

Atsakymas iš AI

Dvigubas medis yra duomenų struktūra, kuri yra medžio formos, kur kiekvienas mazgas turi ne daugiau kaip du vaikus: kairį ir dešinį.

Veikimo principai:

  • Šaknis: Aukščiausias medis mazgas.
  • Mazgai: Laiko duomenis ir nuorodas į vaikus.
  • Gėlės: Mazgai be vaikų.
  • Ryšiai: Nukreipti nuo tėvo mazgo į vaikus.

Pagrindinės operacijos:

  • Įterpimas: Nauji mazgai pridedami į tam tikrą vietą medyje, išlaikant jo struktūrą ir taisykles (pavyzdžiui, dvigubo paieškos medžio atveju: mažesnės reikšmės kairėje, didesnės dešinėje).
  • Paieška: Mazgų peržiūra, siekiant rasti konkretų elementą. Dvigubo paieškos medyje paieška yra efektyvi dėl duomenų tvarkos.
  • Šalinimas: Mazgo šalinimas su struktūros pertvarkymu.
  • Aplankymas: Visų medžio mazgų lankymas tam tikru tvarkymu:
    • Pre-order: Šaknis, kairysis pogrupis, dešinysis pogrupis.
    • Post-order: Kairysis pogrupis, dešinysis pogrupis, šaknis.
    • In-order: Kairysis pogrupis, šaknis, dešinysis pogrupis (suteikia surūšiuotą elementų sąrašą).

Privalumai:

  • Efektyvus paieška, įterpimas ir šalinimas (subalansuotuose medžiuose).
  • Naudojamas hierarchinių duomenų atvaizdavimui.

PHP pavyzdys mazgo struktūrai:

<?php

class Node {
    public $data; // Mazgo duomenys
    public $left; // Kairysis vaikas
    public $right; // Dešinysis vaikas

    public function __construct($data) {
        $this->data = $data;
        $this->left = null;
        $this->right = null;
    }
}