Witajcie. Mam taki problem: znajduje daną wartość w drzewie funkcją szukaj, która przyjmuje 2 arg: var korzen oraz co_szukac.
W funkcji usun_element(var k : wsk; element : integer) szukam wartości, której chce usunąć tak:
szukaj(k, element)
Po wyświetleniu w funkcji usun_element: k.^dana
wyświetla odpowiednią wartość (to co w element). Następnie sprawdzam czy k^.lewy = nil and k^.prawy = nil
. Jeśli tak to daje dispose(k);
No i podczas wyświetlenia drzewa metodą inorder:
Wynik wyszukania inorder: 1 2 4 5 6 7 -32488 <- tutaj było 9, teraz wyświetla jakieś bzdety zamiast nie wyświetlać nic..
Procedura inorder:
procedure inorder(k : wsk);
BEGIN
if k <> nil then
BEGIN
inorder(k^.lewy);
write(k^.dana, ' ');
inorder(k^.prawy);
END;
END
Jak widać, sprawdzam za każdym razem, czy k<> nil -> więc dlaczego jakby odczytywało tą "9" tylko już zniszczoną i zapewne odczytuje bzdety z pamięci ?