Ale na jakim jestes etapie?
Rozumiem, ze to ma byc rysowanie w oparciu o winapi a nie jakas konsolowa namiastka grafiki? Kolka i kreski w api - chyba tyle potrzebujesz . Co do api, wiecej nie pomoge bo czuje do niego wstret .
Jesli chodzi o koncepcje napisania drzewa, trzeba dobrze zrozumiec na jakiej zasadzie ono "dziala" - szczerze powiem, mnie sie nie chce w to wglebiac . Problem nie wyglada na wielce skomplikowany.
Dobra rada, rozrysuj sobie wszystkie klasy a przede wszystkim przeplyw informacji miedzy nimi. Jak pisalem gg w javie plulem sobie w brode, ze tego nie zrobilem. Po mniej wiecej 5klocach koncepcja, ktora mialem w glowie, sie wysypala wlasnie na interfejsach klas. Musialem dodac cala mase klas posrednich - tylko agregowaly dane, ew. troche je mielily. Finalnie wyszla kupa gowna, ktora co prawda dzialala, ale byla kompletnie niezrozumiala - jak to okreslil dr u ktorego to robilem - "panie, to jest kula blotna" .
ehhh ja jestem na "sieciach komputerowych" a nie na "inżynierii oprogramowania"
Nie, to jest "bardzo proste", chodzi o to żeby dodawać sobie liczbę do drzewa (implementacja wskaźnikowa - jedna struktura danych ) a rysować ma takie małe kółka(połączona kreską ) z liczbą która jest tam wstawiona
a tu jest cała funk. rysująca (tylko że w tablicowaj implementacji):
Kod:
procedure Rysuj(j:drzewo; x,y,t,h:integer);
begin
if j[t].prawa<>0
then begin
Form1.Image1.Canvas.MoveTo(x,y);
Form1.Image1.Canvas.LineTo(x+(h div 2),y+40);
Rysuj(j,x+(h div 2),y+40,j[t].prawa,(h div 2));
end;
if j[t].lewa<>0
then begin
Form1.Image1.Canvas.MoveTo(x,y);
Form1.Image1.Canvas.LineTo(x-(h div 2),y+40);
Rysuj(j,x-(h div 2),y+40,j[t].lewa,(h div 2));
end;
if j[t].etykieta<>0
then begin
Form1.Image1.Canvas.Ellipse(x-15,y-15,x+15,y+15);
Form1.Image1.Canvas.TextOut(x-Form1.Image1.Canvas.TextWidth(IntToStr(j[t].etykieta))div 2,y-Form1.Image1.Canvas.TextHeight(IntToStr(j[t].etykieta))div 2,IntToStr(j[t].etykieta));
end;
end;
Obiekt klasy drzewo zawiera obiekty klasy wezel. Obiekty klasy wezel na wskaznikach w tym sensie, ze kreujesz je przez wezel jakis_wezel = new wezel(paramewtry konstruktora) i pozniej wskaznikiem jakis_wezel operujesz?
Nie wiem gdzie masz problem - w ten sposob niewiele pomoge.
Ten kod co wkleiles to mi sie nie podoba bo nie jest w C[x] .
EDIT
A co do implementacji, najprosciej zeby klasa wezel posiadala zmienna wskazujaca na przodka i 2 zmienne wskazujace na potomkow. Niewiele to wnosi bo pewnie sam jestes swiadom, ze tak bdzie najprosciej.
a ja wam powiem ze sie gowno znacie i tu jest wszystko zle! to ma byc wszystko napisane z wlaczonym capslockiem, i potem bedziemy myslec co jest jeszcze ewentualnie nie tak.
_________________ Right now I'm on the edge
So don't push me
I aim straight for your head
So don't push me
Fill your ass up with lead
So don't push me
I got something for your ass, keep thinking I'm pussy
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum
Pomysł tej strony zrodził się w chorych umysłach Akiry & Jumpera
Wszelkie prawa zastrzeżone.
Kopiowanie materiałów ze strony bez zgody autorów zabronione.
Treści publikowane na tym forum są własnością ziomów którzy je zapodalii i wali nas co oni tam nawymyślali