Budowanie drzewa binarnego przez przenoszenie wskaznika korzenia jako argument funkcji rekurencyjnej
Ostatnio zmodyfikowano 2015-08-26 21:03
heroarthur Temat założony przez niniejszego użytkownika |
Budowanie drzewa binarnego przez przenoszenie wskaznika korzenia jako argument funkcji rekurencyjnej » 2015-08-26 20:39:26 witajcie, pragne zbudowac drzewo binarne gdzie kazdy wezel ma jakies tam zmienne, i chce je tak robic ze tworze sobie najpierw korzen: WEZEL * korzen = new WEZEL; i podaje go jako argument funkcji zeby w funkcji zrobic tak dwa kolejne wierzcholki i po ich zrobieniu przypisac je do tego juz utworzonego korzenia dzieki wskaznikowi ktory podalem wlasnie jako argument, a nastepnie jesli dla kazdego z nowo utworzonych wierzcholkow nalezy dalej robic poddrzewa to postąpie anologicznie wywolujac funkcji rekurencyjnie I TERAZ moj problem polega na tym ze chcac uzyc wskaznika rob * wierzcholek z funkcji mam blad: a jesli tak sie nie da z tym argumentem wskaznika to napiszcie czy cos C:\... |30|error: invalid use of 'rob::lewy_wezel'| C:\... |31|error: invalid use of 'rob::prawy_wezel'| typedef struct rob { int max_obciazenie; int obciazenie; int l_lisci_w_l_poddrzewie; typedef struct rob * lewy_wezel, * prawy_wezel; } WEZEL;
void buduj_drzewo( int poczatek, int koniec, rob * wierzcholek ) { if( koniec - poczatek > 1 ) { int mid = poczatek + koniec; WEZEL * nowy_lewy = new WEZEL; nowy_lewy->max_obciazenie = 0; nowy_lewy->obciazenie = 0; WEZEL * nowy_prawy = new WEZEL; nowy_prawy->max_obciazenie = 0; nowy_prawy->obciazenie = 0; wierzcholek->lewy_wezel = nowy_lewy; wierzcholek->prawy_wezel = nowy_prawy; } }
|
|
pekfos |
» 2015-08-26 20:50:02 typedef struct rob * lewy_wezel, * prawy_wezel;
|
Wywal ten typedef. A najlepiej zrób to po prostu w C++. |
|
heroarthur Temat założony przez niniejszego użytkownika |
robie w c++ » 2015-08-26 20:53:01 ten typedef to w ksiazce widzialem ze do listy jednokierunkowej byl uzyty, chcialem przekazujac ten argument do funkcji zrobic drzewo nie wykorzystujac tablicy i zaleznosci ze ojciej*2 + 1 to prawy syn itd i to jest caly czas c++, ale go wywalilem i skompilowal, dzieki w kazdym razie |
|
pekfos |
» 2015-08-26 20:57:01 To widać, choć nie tak wyraźnie, jak powinien wyglądać kod C++. ten typedef to w ksiazce widzialem |
Albo to książka do C, albo słaba do C++. |
|
Szymon2727 |
» 2015-08-26 21:03:18 Typdef służy do skracania nazw - bardzo przydatne narzędzie, gdy napiszemy coś długiego np. zmienna, czy metoda i chcemy ją wykorzystać: http://4programmers.net/C/Typedef
Tutaj nie wiem co robisz, chyba chcesz przypisać wskaźnik, ale nie nadałeś im nazwy :) |
|
« 1 » |