Algorytmy 1

BST 2

Limit czasu: 1.0s | Limit pamięci: 64MB

Napisz program, który wykonuje następujące operacje na drzewie wyszukiwania binarnego $T$.

Drzewo $T$ jest puste w stanie początkowym.

Wstawianie węzłów do drzewa ma się odbywać zgodnie z poniższym algorytmem:


// Cormen et al. - Introduction to Algorithms
TREE-INSERT(T, z)
   y = NIL
   x = root[T]
   while x != NIL
      y = x
      if key[z] < key[x]
         x = left[x]
      else
         x = right[x]
   parent[z] = y
   if y == NIL
      root[T] = z
   else if key[z] < key[y]
      left[y] = z
   else
      right[y] = z	

Wejście

W pierwszym wierszu podano liczbę operacji $m$. W kolejnych $m$ wierszach podano operacje reprezentowane przez insert $k$, find $k$ lub print.

Wyjście

Dla każdej operacji find wypisz yes jeśli $T$ zawiera węzeł zawierający klucz $k$, no - w przeciwnym razie.

Dla każdej operacji print wypisz w jednej linii listę wszystkich kluczy w porządku INORDER, w kolejnej - w porządku PREORDER.

Ograniczenia

Przykłady

Wejście 1

10
insert 30
insert 88
insert 12
insert 1
insert 20
find 12
insert 17
insert 25
find 16
print

Wyjście 1

yes
no
1 12 17 20 25 30 88
30 12 1 20 17 25 88



© 2024 Algomania