Sobes.tech
Junior

Kādas datu struktūras pastāv?

sobes.tech AI

Atbilde no AI

Datu struktūras iedala divās galvenajās kategorijās:

  1. Līnijas: Elementi ir sakārtoti secīgi.

    • Masīvs (Array): Fiksēta izmēra, tieša piekļuve pēc indeksa.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Piemērs deklarācijai
      
    • Saraksts (List): Dinamisks izmērs, elementi tiek pievienoti un dzēsti.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Saistīts saraksts (Linked List): Elementi (mezgli) satur atsauci uz nākamo (un, iespējams, iepriekšējo) elementu.
      • Vienvirziena
      • Divvirziena
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Steks (Stack): Pēdējais ienāca - pirmais iziet (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Pievieno elementu
      int item = stack.Pop(); // Noņem un atgriež elementu
      
    • Rinda (Queue): Pirmo ienāca - pirmais iziet (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Task 1"); // Pievieno elementu
      string task = queue.Dequeue(); // Noņem un atgriež elementu
      
  2. Nelineāras: Elementi nav sakārtoti secīgi.

    • Koks (Tree): Hierarhiska struktūra ar saknes mezglu un bērniem.
      • Divkāršais koks
      • B-koks
      • Sarkanmelns koks
      • AVL koks
    • Tīkls (Graph): Vērtņu (mezglu) un malu (saikņu) kopums.
      • Virzīts (Directed)
      • Nevirzīts (Undirected)
    • Hash tabula (Hash Table) / Vārdnīca (Dictionary): Glabā pārus atslēga-vērtība, izmantojot hash funkciju ātrai meklēšanai.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Ātra piekļuve pēc atslēgas
      
    • Kopa (Set): Kolekcija ar unikāliem elementiem bez noteiktas kārtības.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Dublikāts netiks pievienots