Skocz do zawartości

Zapis struktury dynamicznej


Jarema

Recommended Posts

Mam problem z zapisaniem struktury dynamicznej do pliku, tak zeby mozna ja bylo potem odczytac latwo spowrotem do pamieci. Np. listy dwukierunkowej. Wiem, ze nie mozna zapisac poprostu wskaznikow do pliku, bo potem tego nie da sie odczytac, poniewaz sa to adresy w pamieci. Moze ktos zna jakis sposob w jaki mozna to zrobic szybko i latwo(lub wogole :D ). Choc sam watpie w takie rozwiazanie ;) . Z gory dzieki.

Link do komentarza
Udostępnij na innych stronach

Generalnie to zapisujesz tylko dane tam zawarte. A wyciaganie z pliku to juz tylko dodawanie elementów do listy. Oczywiście przy dodawaniu trzeba sobie zaimplementawać jak jest w zwyczaju ustawianie wskaźników na następny i poprzedni element listy w przypadku listy 2 kier. Osobiście nie spotkałem się z jakimś udogodnieniem w takim przypadku.

Powodzenia :)

Link do komentarza
Udostępnij na innych stronach

Sorki. Moj blad. Faktycznie w przypadku listy 2 kierunkowej da sie tak zrobic. Ale ja mam inna strukture. Jest to taka struktura drzewka. Jeden element moze miec wskaznik to nastepnego elementu, ktory jest z kolei pierwszym w nowej liscie, na schemacie moze to wygladac mniej wiecej tak: :o

O-----O
O O-----O
O O O-----O
O O O O------O
O O
O-----O
O O-----O
O O-----O
O
O-----O
O O

O - to element listy, zawiera on w sobie:
wsk nast1; //wskaznik do nastepnego elementu na tym samym poziomie
wsk poprz1; //wskaznik do poprzedniego elementu -||- -||- -||-
wsk poprz2; //wskaznik do poprzedniego elementu poziom wyzej
wsk nast2; //wskaznik do nastepnego elementu nizszy poziom
int dana; //jakas dana z nim skojarzona

Poziomow moze byc rozna ilosc.
Chodzi o to by to zapisac do pliku a potem odczytac w takiej samej postaci jak sie zapisalo. Jeszcze raz przepraszam za wprowadzenie w blad :? .

Link do komentarza
Udostępnij na innych stronach

Nie bardzo o to chodzi. Bo wiem jak po calym drzewku przeleciec i go zapisac. Tylko co zrobic zeby to odczytac do tej samej postaci. Jak zapisze to potem musze zrobic ta strukture od nowa. Tylko skad mam wiedziec kiedy odczytuje ktory element jest poprzednim ktorego a ktory jego nastepnym i czy ma nastepny element drugiego poziomu. Wiem troche to zagmatwane, ale ta struktura poprostu przetrzymuje mi cale drzewko katalogow na danym dysku. I chodzi o to ze po wylaczeniu i wlaczeniu programu znow drzewko bylo w pamieci.

Link do komentarza
Udostępnij na innych stronach

Jesli dobrze teraz zrozumialem to ja to widze tak.

Zapisywałbym każdya nazwe katalogu w ten sposób:
x1 x2 x3 nazwa
gdzie:
x1 - numer poziomu do którego należy
x2 - numer katalogu do ktorego nalezy
x3 - numer katalogu
nazwa - nazwa katalogu

przykład:
masz np na dysku C: katalogi: (w nawiasach pdoalem podkatalogi)
filmy
mp3 (techno, rock)
czyli masz takie dostepne sciezki:
c:\filmy\
c:\mp3\techno\
c:\mp3\rock\
i ja bym je zapisał mniweiecej tak:
0 0 1 filmy
0 0 2 mp3
1 2 1 techno
1 2 2 rock

mam nadzieje ze chyciłeś :D

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...