Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Struktury danych - lista

Ostatnio zmodyfikowano 2013-01-07 19:05
Autor Wiadomość
rooker
Temat założony przez niniejszego użytkownika
Struktury danych - lista
» 2013-01-04 16:20:56
Witam poszukuje jakiejś strony, która dobrze wytłumaczy mi zasade działania listy, nie było mnie na zajęciach i nie do końca to rozumiem, a w symfonii tego nie ma.
P-72896
DejaVu
» 2013-01-04 16:24:00
Pozwolę się dopytać: czy chodzi Ci o ogólne założenie działania listy, czy też o kontener std::list?

Generalnie w necie jest cała masa informacji na temat listy oraz jak ona działa:
Frazy, które należy wpisać w wyszukiwarkę google:

/edit:
Tutaj jest rozsądny rysunek prezentujący działanie listy jednokierunkowej:
http://pl.wikibooks.org/wiki/Struktury_danych/Listy

Są jeszcze listy dwukierunkowe:
Frazy, które należy wpisać w wyszukiwarkę google:

Rysunki sensowne są tu:
http://pl.wikipedia.org/wiki/Lista
P-72899
rooker
Temat założony przez niniejszego użytkownika
» 2013-01-05 13:21:54
chodzi mi też o to że nie za bardzo rozumiem kodu przy listach i tego zapisu z ->
P-73023
crash
» 2013-01-05 13:50:27
C/C++
struct Struktura
{
    int pole;
};

int main()
{
    Struktura s1; //zwykła zmienna
    Struktura * s2 = new Struktura; //zmienna wskaźnikowa
   
    s1.pole = 10; // dostęp do pola przez operator .
   
    s2->pole = 20; // dostęp do pola przez operator -> gdy zmienna wskaźnikowa
   
    ( * s2 ).pole = 30; // można jeszcze tak
}

Tablica 10 elementów typu np. int to 40 bajtów jeden koło drugiego. Tablica 10 elementów typu char, to 10 bajtów koło siebie, jeden przy drugim. Tablice to generalnie szybki dostęp do poszczególnych komórek pamięci, mankament taki, że jak się raz przydzieli rozmiar to nie można go zmienić. Lista, stos, kolejka, drzewa to dynamiczne struktury danych. Patent jest taki, że poszczególny element przechowuje wartość i informacje gdzie znajduje się np. poprzedni element, następny, lub kilka poprzednich elementów, kilka następnych. Po takich strukturach przemieszcza się za pomocą wskaźników, a względem siebie w pamięci mogą być porozrzucane - wskaźniki wewnątrz elementów wskazują gdzie się znajdują kolejne elementy, które też mogą mieć wskaźniki. W przeciwieństwie do tablic, dynamicznym strukturom danych można manipulować rozmiarem, zwiększać/zmniejszać etc.

Listy są jedno- lub dwukierunkowe. Oznacza to tyle, że 1-kierunkowa lista wewnątrz poszczególnego elementu zawiera przechowywaną wartość oraz informacje o następnym/poprzednim elemencie, tj. gdzie on jest w pamięci. 2-kierunkowa lista wie gdzie jest poprzedni oraz następny element - umożliwia to poruszanie się po liście do przodu i do tyłu.

Obczaj dokładnie jak działa stos, później zajmij się listami. Jeśli tego nie załapiesz w porę, to będziesz miał problem z drzewami, które Cię na pewno nie ominą. To nie gryzie więc się nie bój ;)

P-73027
rooker
Temat założony przez niniejszego użytkownika
» 2013-01-05 16:29:44
a po co do zmiennej s2 przypisujesz new Strukura??
P-73037
crash
» 2013-01-05 17:40:18
Frazy, które należy wpisać w wyszukiwarkę google:

Pierwszy link :)
Tzw. dynamiczne przydzielenie pamięci.

Swoją drogą zrobiłem mały błąd - nie zwolniłem pod koniec pamięci. Zresztą, doczytaj sobie, w pierwszym linku wszystko jest ładnie wyjaśnione.
P-73047
pekfos
» 2013-01-05 18:49:45
nie za bardzo rozumiem kodu przy listach i tego zapisu z ->
a po co do zmiennej s2 przypisujesz new Strukura??
Więc po co szukasz takich rzeczy, skoro nie znasz podstaw?
P-73059
rooker
Temat założony przez niniejszego użytkownika
» 2013-01-06 08:54:41
zamiast mówić tego że nie znam, może byś mi to jakoś wytłumaczył a nie gadał, albo odsyłał do innych źródeł.
Dzięki crash za pomoc.
P-73119
« 1 » 2
  Strona 1 z 2 Następna strona