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