8. vje~zbe iz C-a -- 1. zadatak
✓XHTML1
- Definirajte tip binarnog stabla, koje u svakom ~cvoru ima zapisan jedan
podatak tipa
int
, te svaki ~cvor pokazuje na svoje lijevo dijete,
desno dijete i roditelja.
- ~Citajte sa standardnog ulaza cijele brojeve dok se ne u~cita nula, i
ubacujte ih na odgovaraju~te mjesto u binarnom stablu tra~zenja.
Nulu tako~der ubacite u stablo na odgovaraju~te mjesto.
(Manji ili jednaki elementi smje~staju se lijevo, a ve~ti desno.)
- Pitajte korisnika za jedan cijeli broj, i potra~zite ga u tako dobivenom
stablu tra~zenja. Ako nije prona~den, ili je jednak 0, prekinite izvr~savanje programa uz
poruku o gre~sci.
- Ispi~site prona~deni broj, i dajte korisniku mogu~tnost kretanja lijevo,
desno i gore (uno~senjem slov~a 'l', 'd' i 'g'). Ako je nemogu~te kretati se
u ~zeljenom smjeru, treba ostati na istom mjestu, i ispisati poruku
o tome.
- Ispi~site broj na kojem se korisnik trenutno nalazi, i ponavljajte gornji
korak sve dok korisnik ne do~de do one nule koja je zadnja unesena u
binarno stablo. Ispi~site koliko mu je koraka bilo potrebno.
- Na~dite duljinu najkra~teg
puta od tra~zenog broja do nule, i ispi~site "u~cinkovitost" korisnikovog
putovanja (duljina_najkra~teg_puta/duljina_korisnikovog_puta*100%, zaokru~zeno na najbli~zi ni~zi cijeli broj %).