Sobes.tech
Junior

Aké existujú dátové štruktúry?

sobes.tech AI

Odpoveď od AI

Štruktúry údajov sa delia na dve hlavné kategórie:

  1. Lineárne: Prvky sú usporiadané sekvenčne.

    • Pole (Array): Fixná veľkosť, priame prístupovanie podľa indexu.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Príklad deklarácie
      
    • Zoznam (List): Dynamická veľkosť, prvky sa pridávajú a odstraňujú.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Prepojený zoznam (Linked List): Prvky (uzly) obsahujú odkaz na nasledujúci (a možno aj predchádzajúci) prvok.
      • Jednosmerný
      • Dvosmerný
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Zásobník (Stack): Posledný prišiel - prvý odišiel (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Pridá prvok na vrchol
      int item = stack.Pop(); // Odstráni a vráti prvok z vrcholu
      
    • Fronta (Queue): Prvý prišiel - prvý odišiel (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Task 1"); // Pridá prvok na koniec
      string task = queue.Dequeue(); // Odstráni a vráti prvok z začiatku
      
  2. Nelineárne: Prvky nie sú usporiadané sekvenčne.

    • Strom (Tree): Hierarchická štruktúra s koreňovým uzlom a potomkami.
      • Dvojprvkový strom
      • B-strom
      • Červeno-čierne strom
      • AVL strom
    • Graf (Graph): Súbor vrcholov (uzlov) a hrán (väzieb) medzi nimi.
      • Smerovaný (Directed)
      • Nesmerovaný (Undirected)
    • Hash tabuľka (Hash Table) / Slovník (Dictionary): Ukladajú páry kľúč-hodnota, používajúce hashovaciu funkciu pre rýchle vyhľadávanie.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Rýchly prístup podľa kľúča
      
    • Množina (Set): Kolekcia unikátnych prvkov bez určeného poradia.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Duplicita nebude pridaná