zapis drzewa do pliku

0

Mam niezrownowazone drzewo binarne, chcialbym korzystac z niego, ale juz po zamknieciu programu wiec musze zapisac go do pliku. Jak to zrobic, zeby zapis byl jednoznaczny? Jak potem zbudowac takie drzewo na podstawie tych informacji zawartych w pliku? z gory dziekuje za pomoc

0

Nie znam sie na drzewach binarnych.. ale może przy użyciu XML? albo jakaś tablica z rekordami ;P

0

Możesz sobie założyć, że pierwsze 4 bajty w pliku to offset początku rekordu korzenia drzewa w pliku. Każdy rekord posiada offset startu w pliku rekordu prawego dziecka i lewego dziecka (0 może oznaczać brak). Rekordy zawsze dopisujesz na końcu pliku i podczas działania programu nigdy ich nie kasujesz. Jeżeli wartościami węzłów nie są dane o stałej długości można zapisać także długość bloku danych. Jeżeli posiadasz takie informacje, to przechodzenie drzewa w pliku metodą preorder powinno zbudować odpowiednią strukturę w pamięci.

Wydaje mi się, że takie coś powinno zadziałać.

0

Rekurencja + serializacja. Każdy węzeł ma np. funkcję save ze strumieniem jako parametr. Zapisuje w niej własne dane i info o tym czy posiada poddrzewa. Dalej funkcja ta zapisuje lewy węzeł (funkcją save) i prawy. Analogicznie wygląda odczyt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0