| C/C++ naloga "zahtevno" | ||
|---|---|---|
|
Willbender
13. mar 2008 16:03:40
Pridružen od: 13. mar 2008 3 objav 0 0 0 |
#1
Zdravo, potrebujem pomoč pri realizaciji naloge, ki sem jo dobil pri programiranju2 na faksu. Programirali naj bi v C-ju, vendar bi mi tudi c++ rešitev prišla prav. Torej, četudi znate rešiti samo del naloge prosim postajte kodo, hvala. Treemap © Napišite program, ki implementira podatkovno strukturo TreeMap iz Jave, kjer namesto rdeče-črnih dreves uporabite navadno binarno drevo (binarni slovar). Za binarni slovar (binarno iskalno drevo) velja, da je ključ v korenu večji od ključa v levem poddrevesu in manjši od ključa v desnem poddrevesu za vsako vozlišče v drevesu. Pri binarnem slovarju je potrebno implementirati konstruktor (ki ustvari prazno strukturo), destruktor (ki sprosti vse vire, ki jih je zasedla struktura, na primer pomnilnik), metode put(k,v), get(k), clear(), containsKey(k), containsValue(v), isEmpty(), remove(k) in size(). Vrednost elementa naj bo poljuben niz znakov, katerega dolžina ne presega 255 znakov, ključ pa je celo število. Število elementov v tej strukturi naj ne bo omejeno. Vse funkcije naj kot parameter prejmejo kazalec na strukturo. Delovanje napisanih funkcij preverite v programu, ki najprej zgradi strukturo, katere elemente prebere iz datoteke. Elementi strukture so v datoteki zapisani po vrsticah. V vsaki vrstici je najprej eno celo število, ki predstavlja ključ elementa, temu pa sledi presledek in niz znakov (dolžine največ 255 znakov), ki predstavlja vrednost elementa. Niz z vrednostjo je zapisan v narekovajih. Ko slovar zgradite, ga izpišite (način izpisa je poljuben, le na začetku naj se v oklepaju izpiše tudi njegova dolžina). Operacije nad zgrajenim slovarjem so zapisane v drugi datoteki, vsaka v svoji vrstici, in sicer v naslednji obliki (vrednost je vedno zapisana v narekovajih, med oznako operacije, ključem in vrednostjo pa je presledek): p ključ "vrednost" pomeni dodajanje elementa v slovar, Pred brisanjem elementa iz slovarja vedno najprej preverite, ali ni slovar slučajno prazen. Po vsaki operaciji naj program na zaslon izpiše rezultat operacije oziroma trenutno velikost slovarja (v oklepaju) in njegove elemente. Na koncu slovar tudi izpraznite in uničite (klic destruktorja). Imeni obeh datotek sta podani kot argumenta programa. Primer datoteke z elementi slovarja: 5 "to je prvi niz" Primer datoteke z operacijami nad slovarjem: p 2 "dodamo ta niz" Primer izpisa za zgornjo datoteko (način izpisa slovarja je poljuben): (4) 1 "drugi niz", 3 "se ena vrednost ...", 5 "to je prvi niz", 7 "vrednost v slovarju" |
|
|
Vini
13. mar 2008 19:03:38
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
||
|
imp
13. mar 2008 19:03:49
Pridružen od: 11. apr 2007 894 objav 3 1 0 |
||
|
HeXeR
13. mar 2008 20:03:29
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
First rule of business, protect your investment.
|
|
|
Willbender
13. mar 2008 21:03:28
Pridružen od: 13. mar 2008 3 objav 0 0 0 |
#5
mah kje se mi je ustavilo...na začetku. Pojma nimam kako bi se lotil zadeve. |
|
|
Vini
13. mar 2008 22:03:03
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#6
Verjetno bi bilo za zacetek fino, ce ves, kaj je to TreeMap in kaj je to binarno drevo (binary tree) in kaj je to binarno iskalno drevo (binary search tree). Na tej zadnji povezavi na Wikipedio imas tudi nekaj primerov implementacij metod, ki jih od tebe zahteva naloga, v razlicnih jezikih, med drugim tudi v C++. |
|
|
Willbender
14. mar 2008 11:03:00
Pridružen od: 13. mar 2008 3 objav 0 0 0 |
||