Splay Tree in C

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
body1993
Junior
Junior
Posts: 1
Joined: 21 Aug 2013, 11:51
Judet: Dolj

Splay Tree in C

Post by body1993 » 21 Aug 2013, 11:56

Salut am si eu o problema trebuie sa fac o aplicatie a arborilor splay cu interfata win32 api implementat in c in visual studio. Aplicatia trebuie sa prezinte operatiile care se pot face asupra arborelui(inserare,cautare si stergere).Am gasit pe internet o aplicatie java a unui arbore splay http://www.ibr.cs.tu-bs.de/courses/ss98 ... ample.html ,asa trebuie sa fac si eu doar ca trebuie sa fie in fereastra windows.

Practic nici nu stiu de unde sa incep putin ajutor mi-ar prinde bine. Multumesc



User avatar
bu7ch3r
Membru++
Membru++
Posts: 326
Joined: 17 May 2011, 15:17
Judet: Iaşi
Location: Sofia
Contact:

Re: Splay Tree in C

Post by bu7ch3r » 21 Aug 2013, 21:11

Sa inveti cum sa desenezi cu win32API.
Apoi sa-ti dai seama ca win32API e prea stufos pentru desenat - :-? Defapt nu e - vreau doar sa te panichez.
Sa te gandesti cum pozitionezi nodurile alea in funtie de ierarhie pentru arborele initial.
Sa faci animatii generice pentru noduri - in caz ca se modifica arborele(inserare, adaugare, stergere).
Poti sa renunti la animatii si dupa fiecare modificare sa faci calcule si sa desenezi direct. Nu o sa se supere nimeni ca nu se plimba bilele alea pe ecran - dar o sa ramana uimit daca o fac :)

Pe mine nu m-a dus capul decat sa desenez un graf, in MFC. Puneam toate nodurile in jurul unui cerc la distante egale intre ele, apoi desenam muchiile si lasam utilizatorul sa mute nodurile cum are chef. Pentru arbore e mai stricta desenarea...

Pentru arbore e mai strict pentru ca radacina o sa fie mereu pe mijoloc, descendentii o sa fie si ei "radacina" si o sa se puna si pe mijloc - un mijloc relativ cu nivelul grafului la care ai ajuns - si tot asa - pui nodurile sa "vorbeasca" intre ele ca sa le asezi. Oricum dupa ce modifici arborele o sa fie simplu sa iti dai seama unde trebuie sa desenezi nodurile...
Imparti width-ul la adancime modifici pozitia descendentilor in functie de nivel.
Imparti heightul tot la adancime si tot incrementezi y-ul in functie de nivel.

Daca ai 600px x 900px si adancime 2 - radacina, nod stanga, nod dreapta: primul nod il pui la 300,0, stanga la 150, 900, dreapta la 450, 900

Dca ai 600 px x 900 px si adancime 3:

----------- x _____________________________ 300, 0
----x ------------- x_____________150,300.................. 450, 300
x------ x _____x----- x ____75, 900......225,900 ___225,900.......675, 900

Ai pozitia nodurilor si inainte sa le desenezi tragi linii, dupa aia desenezi nodurile si o sa se suprapuna pe intersectia muchiilor. Gata!

Eu prima si prima oara cand m-am apucat de desenat, in MFC, am citit asta: http://www.microsoft.com/mspress/books/1431.aspx - o gasesti tu, nu te pun s-o cumperi dar nici nu pot sa-ti zici s-o torrent-uiesti.
Este o carte si mai simpla dar din pacate nu-mi aduc aminte cum se cheama - acolo iti zice pas cu pas cum sa desenezi.
Sunt sigur ca cineva de aici o sa-ti recomande ceva mai usor de inteles

Disclaimer: eu asa as face

Si ca sa nu para ca vorbesc de pe garduri - plus ca am ocazia sa ma laud ca am desenat niste linii si cercuri si numere pe un CStatic:
Image
Cu stima,
Lupu Claudiu

Post Reply