Rekurzívne typy

Ciele

  1. Rekurzívny typ: Prirodzené čísla
  2. Rekurzívny typ: Zoznam
  3. Rekurzívny typ: Binárny vyhľadávací strom

Postup

Krok 1

Úloha 1.1

Zadefinujte nový rekurzívny typ $Nat$ pre prirodzené čísla ako variantový typ.

Úloha 1.2

Definujte hodnotu nula typu $Nat$.

Úloha 1.3

Definujte operáciu nasledovníka.

Úloha 1.4

Definujte operácie $pred$ a $iszero$.

Krok 2

Rekurzívny typ: Zoznam prirodzených čísel

Zoznam

Úloha 2.1

Zadefinujte nový rekurzívny typ $ListNat$ pre zoznam prirodzených čísel ako:

  1. Súčtový typ.
  2. Variantový typ.

Úloha 2.2

Definujte hodnotu pre prázdny zoznam.

Úloha 2.3

Definujte operáciu konštruktora zoznamu.

Úloha 2.4

Definujte operácie $head, tail$ a $isnil$.

Krok 3

Rekurzívny typ: Binárny strom

Úloha 3.1

Zadefinujte nový rekurzívny typ $Tree$ pre binárny strom ako:

  1. Súčtový typ.
  2. Variantový typ.

Úloha 3.2

Zadefinujte novu hodnotu pre prázdny strom.

Úloha 3.3

Zadefinujte novu hodnotu pre uzol stromu.

Úloha 3.4

Zadefinujte uzol stromu.

Úloha 3.5

Zadefinujte operácie $insert, search, inorder, preorder, postorder$ a $height$.