Skocz do zawartości

Zapis struktury dynamicznej


Recommended Posts

Napisano

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.

Napisano

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 :)

Napisano

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 :? .

Napisano

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.

Napisano

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

Napisano

Piasiu jestes genialny :!: :!: :!: :!: Ja mam wieeelkie problemy z algorytmami, a ty poddales tak proste rozwiazanie. Zrobilem i dziala zarąbiscie. Nawet udalo mi sie obejsc bez jednej liczby. Stokroc Thanks :!: :!: :!: :)  :)  :)  :)  :D :D :D :D

Napisano

Jak miło usłyszeć takie podziękowanie (o ile nei jest ironia ale pewnie nie jest:>) :P

A co do tej liczby to potem sie jeszzcze zastanowilem i tez mi sie zdawalo ze daloby sie tylko z dwoma liczbami to zrobic no ale jakos ie chcialo mi sie do konca tego analizowac :D

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...