Mi az a dinamikus tömb/lista?
A dinamikus (vagy láncolt) lista olyan adatstruktúra, ami nem cím-folytonosan helyezkedik el a memóriában, hanem az egyik elem explicit módon határozza meg a következő (vagy megelőző) elem helyét, konkrétan minden elem tartalmazza a szomszédja címét. A hagyományos tömbnél nincs ilyen, azok elemei sorban vannak a memóriában és az egyes elemek címe az első elem címe és az elemméret alapján számítható.
A dinamikus tömb is tömb, csak igény szerint változtatható a mérete, esetleg beszúrhatók, törölhetők belőle elemek.
Balra egy tömb, jobbra egy dinamikus lista.
Attól dinamikus, hogy nem minden futásnál ugyanannyi elemet tartalmaz, valamitől függ a tömb, illetve lista mérete. Pl. ha tömbben vannak tárolva a válaszok ezen kérdés alatt, akkor eddig 1 elemű volt a tömb, most már 2 elemű, ha meg ír még valaki választ, akkor 3 elemű lesz.
A C#-hoz annyira nem értek, de a lista annyiból (is) más, hogy ahhoz hozzá lehet adni, el lehet venni elemeket, míg a dinamikus tömb – ha jól tudom – az értékadásig / deklarálásig dinamikus.
Dinamikus tömbre példa (különösebb hibakezelés nélkül):
Console.WriteLine("Adja meg, hány darab szám átlagát akarja kiszámolni!");
int darab = Convert.ToInt32(Console.ReadLine());
int[] szamok = new int[darab];
for (int i = 0; i < darab; i++) {
Console.WriteLine("Kérem a {0}. számot", i+1);
szamok[i] = Convert.ToInt32(Console.ReadLine());
}
…
Dinamikus listára példa:
List<string> vendegek = new List<string>();
vendegek.Add("Aladár");
vendegek.Add("Béla");
if (…valamilyen feltétel…) vendegek.Add("Cecil");
…
Egy tömbbel az a gáz, hogy fix száma van, nem lehet bővíteni, illetve ha törölsz belőle, akkor is ott marad, csak nincs benne semmi.
Listában az a jó, hogy bővíthető, illetve ha törölsz belőle, akkor a helye sem marad meg.
Az első válaszoló butaságokat ír.
A címfolytonosságnak semmi köze a dologhoz.
Ráadásul keveri is a láncolt listát a listával meg a dinamikus tömbbel.
Lehet egy lista, de akár egy láncolt lista is címfolytonos ma már (sőt, ha kisebb a mérete akkor nagy valószinűséggel az is) és lehet egy mezei statikus tömb is több részletben a memóriában.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!