Izziv 2 - Izris celovitega dvojiškega drevesa

Odprto: ponedeljek, 21. november 2022, 00.00
Rok za oddajo: ponedeljek, 28. november 2022, 23.59

Navodila

Napišite kratek program v javi, ki izriše celovito dvojiško drevo z n elementi. Velikost drevesa (število elementov) naj bo podana kot argument ob klicu. Izris drevesa naj bo mogoč z uporabo uporabo vseh štirih načinov obhoda (nivojski, premi, vmesni in obratni). Za izris drevesa uporabite primerno knjižnico grafičnih elementov (recimo StdDraw).

Določanje pozicij vozlišč

Pri reševanju si predstavljajte, da drevo velikosti n rišemo na mrežo (širine n in višine log n). Za vsako vozlišče velja, da je izrisano na določenem položaju (x,y), pri čemer je njegov odmik po x osi določen z njegovim zaporednim mestom pri vmesnem izpisu, y odmik pa z nivojem vozlišča v drevesu. Položaje vseh vozlišč je treba določiti pred risanjem.  

Izris drevesa

Izris drevesa je primerno izvesti v posebnem razredu. Za lažje risanje drevesa si je smiselno pripraviti metode, ki izrišejo določeno vozlišče (krogec s središčem (x,y)) ter povezavo med vozlišči. Po vzpostavitvi risalne površine se izris izvede z zaporednim izrisom (1) povezav do očeta in vozlišč ter nato še posameznih (2) vozlišč, seveda ob upoštevanju ustreznega zaporedja obiskov elementov drevesa. Vozlišča je mogoče obiskati na šriri načine (nivojski, premi, vmesi in obratni), vsakemu ustreza svoja metoda. 

Za risanje priporočamo uporabo knjižnice StdDraw (R.Sedgewick, Princeton), ki jo lahko dobite na naslovu  http://introcs.cs.princeton.edu/java/stdlib/StdDraw.java

Testni razred

V testnem razredu Izziv2 preko argumenta pridobite velikost drevesa, vzpostavite ustrezno veliko risalno površino ter sprožite izris drevesa.

Oddaja

Vse razrede vaše rešitve ter sliko drevesa (recimo za n=12 - obratni način) oddajte v eni zip datoteki do (naslednjega) ponedeljka.