Junior — Middle
Môžete vysvetliť vnútornú štruktúru zoznamu a ako je implementovaná v pamäti?
sobes.tech AI
Odpoveď od AI
V C# je datová štruktúra List<T> implementovaná ako dynamický poľ. Vo vnútri obsahuje:
- Pevne veľké pole, ktoré uchováva prvky.
- Pole, ktoré ukazuje aktuálnu veľkosť (počet prvkov).
Keď sa pridá nový prvok a pole je plné, vytvorí sa nové väčšie pole (zvyčajne dvojnásobné), a všetky prvky sa skopírujú do neho. To umožňuje efektívne pridávanie prvkov pri zachovaní prístupu podľa indexu v O(1).
Príklad:
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// Vo vnútri List sa pole rozširuje podľa potreby
int first = numbers[0]; // prístup podľa indexu
Týmto spôsobom, List<T> kombinuje výhody poľa (rýchly prístup) a dynamickej veľkosti.