Cipzár

Cipzár

Nehéz

Utasítások

Zipper készítése bináris fához.

A zipperek tisztán funkcionális módját kínálják annak, hogy egy adatszerkezetben navigáljunk és azt módosítsuk. Lényegében egy adatszerkezetet és egy arra mutató pointert tartalmaznak (ezt nevezzük fókusznak).

Például egy rózsafa esetén (amelynek minden csomópontja egy értéket és a gyermekcsomópontok listáját tartalmazza) egy zipper a következő műveleteket támogathatja:

  • from_tree (zippert készít egy rózsafából, a fókusz a gyökércsomóponton van)
  • to_tree (kiveszi a rózsafát a zipperből)
  • value (visszaadja a fókuszcsomópont értékét)
  • prev (a fókuszt az ugyanazon szülő előző gyermekére mozgatja, új zippert ad vissza)
  • next (a fókuszt az ugyanazon szülő következő gyermekére mozgatja, új zippert ad vissza)
  • up (a fókuszt a szülőre mozgatja, új zippert ad vissza)
  • set_value (beállítja a fókuszcsomópont értékét, új zippert ad vissza)
  • insert_before (új részfát szúr be a fókuszcsomópont elé, ez lesz a fókuszcsomópont prev-je, és új zippert ad vissza)
  • insert_after (új részfát szúr be a fókuszcsomópont után, ez lesz a fókuszcsomópont next-je, és új zippert ad vissza)
  • delete (eltávolítja a fókuszcsomópontot és az összes részfáját; a fókusz a next csomópontra kerül, ha lehetséges, egyébként a prev csomópontra, ha lehetséges, egyébként a szülőcsomópontra, és új zippert ad vissza)

Tippek

Ez a feladat az egyedi egyenlőség-összehasonlítással foglalkozik. További információért lásd: overriding.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Visual Basic Exercism

Készen állsz elkezdeni a(z) Cipzár feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Visual Basic nyelvet 113 feladat segítségével, valódi emberi mentorálással, mindez ingyen.