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,

g ključ pomeni izpis vrednosti elementa s tem ključem,

k ključ vrne 1, če je podan ključ v slovarju, sicer vrne 0,

v "vrednost" vrne 1, če je podana vrednost v slovarju, sicer vrne 0,

r ključ pomeni brisanje elementa iz slovarja.



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"

1 "drugi niz"

7 "vrednost v slovarju"

3 "se ena vrednost ..."



Primer datoteke z operacijami nad slovarjem:



p 2 "dodamo ta niz"

p 2 "zamenjamo niz"

g 5

g 3

g 7

k 2

k 3

r 3

v "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"

(3) 1 "drugi niz", 5 "to je prvi niz", 7 "vrednost v slovarju"

(4) 1 "drugi niz", 2 "dodamo ta niz", 5 "to je prvi niz", 7 "vrednost v slovarju"

(4) 1 "drugi niz", 2 "zamenjamo niz", 5 "to je prvi niz", 7 "vrednost v slovarju"

"to je prvi niz"

0

"vrednost v slovarju"

1

0

0


všeč(0) ni všeč(0) spam(0)
 
Vini 13. mar 2008 19:03:38 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#2

In kje se ti je ustavilo?


všeč(0) ni všeč(0) spam(0)
 
imp 13. mar 2008 19:03:49 Pridružen od:
11. apr 2007
894 objav
3 1 0
#3

Če sem prav razumel, on hoče, da mu celo nalogo nekdo naredi ali pa vsak en del nje.


všeč(0) ni všeč(0) spam(0)
 
HeXeR 13. mar 2008 20:03:29 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#4

Pa ej, to sem danes na enem blogu videl, RSS no zapisa potem nisem bral :) .


všeč(0) ni všeč(0) spam(0)
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.

Nek načrt bi mi zelo prav prišel...ne rabim cele kode(no škodila nebi).


všeč(0) ni všeč(0) spam(0)
 
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++.


všeč(0) ni všeč(0) spam(0)
 
Willbender 14. mar 2008 11:03:00 Pridružen od:
13. mar 2008
3 objav
0 0 0
#7

ok, hvala. Si bom pogledal, če bom imel kakšno vprašanje, pa sporočim.



Lp


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se