Vjezbe 5: stabla U programu tree.c nalazi se funkcija koja mjeri visinu (dubinu) stabla, te dvije varijante preorder ispisa stabla. Stablo kreiramo tako da u mainu napravimo korijen, a ostatak upisujemo pomocu funkcije kreiraj_podstablo. Ta funkcija rekurzivno kreira stablo na sljedeci nacin: - u svakom trenutku mozemo "trenutnom cvoru" dodati "prvo dijete" sa zeljenom oznakom. Upisujemo ili oznaku prvog djeteta, ili znak '-' ako ono ne postoji. - ako prvo dijete ne postoji (tj. ako je upisana '-'), mozemo upisati iduceg brata trenutnog cvora, na isti nacin - ako ne postoji ni iduci brat, penjemo se za jedan nivo tako sto izađemo iz trenutnog poziva rekurzije Zadaci: ----------------------------------- 1) Pokusajte sami osmisliti funkciju kojom cete ucitavati stablo 2) Modificirajte funkciju "ispis" tako da dobijete funkciju za rekurzivni POSTORDER ispis 2) Izvedite funkciju preorder nerekurzivno, pomocu poziva funkcije TrParent Popis tipova i funkcija u ATP tree ----------------------------------- labeltype node Tree node TrMakeRoot(labeltype l, Tree* T); node TrInsertChild(labeltype l, node i, Tree* T) node TrInsertSibling(labeltype l, node i, Tree* T) void TrDelete(node i, Tree* T) node TrRoot(Tree T) node TrFirstChild(node i, Tree T); node TrNextSibling(node i, Tree T); node TrParent(node i, Tree T); labeltype TrLabel(node i, Tree T); void TrChangeLabel(labeltype l, node i, Tree* T);