Cvičení 4 - BST I; dynamické alokace v seznamu

Informatici (cvičení v C)

Témata

Úkoly

  1. Pomocí seznamu naprogramujte zásobník (typ pro zásobník stack) a jeho základní operace (void push(stack *zasobnik, int data) a int pop(stack *zasobnik)).
  2. Pomocí seznamu naprogramujte frontu (typ pro frontu queue) a její základní operace (void enqueue(queue *fronta, int data) a int dequeue(queue *fronta)). Co byste museli upravit, aby obě operace byly v O(1)?
  3. Implementujte obousměrný spojový seznam.
  4. Implementujte vhodné struktury pro binární vyhledávací strom (uzel stromu node; strom tree - obsahující ukazatel na kořen). Strom bude obsahovat hodnoty typu int.
  5. Implementujte následující procedury pro práci s BST:
    • přidání prvku do stromu void add(tree *t, int data)
    • vypsání prvků ve stromě ve vzestupném pořadí void print_in_order(tree t)
    • výpočet hloubky stromu int depth(tree t)

Učitelé (cvičení v Pythonu)

Témata

Společně implementujeme spojový seznam a základní operace na něm (vyhledávání, přidávání, mazání). Projdeme si další lineární datové struktury.

Úkoly

  1. Pomocí spojového seznamu naprogramujte zásobník.
  2. Pomocí spojového seznamu naprogramujte frontu.
  3. Implementujte obousměrný spojový seznam.