k88 Opublikowano 14 Lutego 2008 Udostępnij Opublikowano 14 Lutego 2008 Napisałem BST (Binary Search Tree), ale niestety nie do końca działa. Proszę o pomoc w znalezieniu błędów. Oto Kod Programu: #include <cstdlib> #include <iostream> #include <stdio.h> #include <stdlib.h> struct Wezel { double Klucz; int Wart; Wezel *Left; Wezel *Right; }; Wezel *korzen; void Wstaw (Wezel *korzen, double _Klucz, int _Wart) { if (korzen==NULL) { Wezel *korzen=new Wezel; korzen->Klucz=_Klucz; korzen->Wart=_Wart; korzen->Left=NULL; korzen->Right=NULL; } else if(_Klucz < korzen->Klucz) Wstaw(korzen->Left, _Klucz, _Wart); else if(_Klucz > korzen->Klucz) Wstaw(korzen->Right, _Klucz, _Wart); } void Wyszukaj (Wezel *korzen, double _Klucz) { if (korzen == NULL) printf("Podany klucz nie istnieje"); else if (korzen->Klucz == _Klucz) printf("Podany klucz istnieje"); else if (_Klucz < korzen->Klucz) Wyszukaj(korzen->Left, _Klucz); else if (_Klucz > korzen->Klucz) Wyszukaj (korzen->Right, _Klucz); } void Usun (Wezel *korzen, double _Klucz) { if ((korzen->Left == NULL) && (korzen->Right == NULL)) // korzen jest lisciem korzen=NULL; else if ((korzen->Left != NULL) && (korzen->Right == NULL)) // korzen ma jednego syna (z lewej) korzen=korzen->Left; else if ((korzen->Left == NULL) && (korzen->Right !=NULL)) // korzen ma jednego syna (z prawej) korzen=korzen->Right; } void Wypisz (Wezel *korzen) { std::cout << korzen->Klucz << " , " << korzen->Wart << "\n"; if(korzen->Left != NULL) Wypisz (korzen->Left); if(korzen->Right != NULL) Wypisz (korzen->Right); } int main() { Wstaw(korzen, 1, 7); Wstaw(korzen, 2, 43); Wypisz(korzen); Wyszukaj(korzen, 1); Usun(korzen, 1); Wypisz(korzen); system("PAUSE"); return EXIT_SUCCESS; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się