Sobes.tech
Junior

Koje postoje strukture podataka?

sobes.tech АИ

Одговор од АИ

Strukture podataka dele se na dve osnovne kategorije:

  1. Linearnye: Elementi su raspoređeni sekvencijalno.

    • Niz (Array): Fiksne veličine, direktan pristup po indeksu.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Primer deklaracije
      
    • Lista (List): Dinamičke veličine, elementi se dodaju i uklanjaju.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Povezana lista (Linked List): Elementi (čvorovi) sadrže referencu na sledeći (i, možda, prethodni) element.
      • Jednosmerna
      • Dvosmerna
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Stek (Stack): Poslednji došao - prvi otišao (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Dodaje element na vrh
      int item = stack.Pop(); // Uklanja i vraća element s vrha
      
    • Red (Queue): Prvi došao - prvi otišao (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Task 1"); // Dodaje element na kraj
      string task = queue.Dequeue(); // Uklanja i vraća element s početka
      
  2. Nelinearne: Elementi nisu raspoređeni sekvencijalno.

    • Stablo (Tree): Hijerarhijska struktura s korenskim čvorom i potomcima.
      • Dvostruko stablo
      • B-stablo
      • Crveno-crno stablo
      • AVL stablo
    • Graf (Graph): Skup vrhova (čvorova) i grana (veza) između njih.
      • Usmeren (Directed)
      • Nusmeren (Undirected)
    • Hash tabela (Hash Table) / Rečnik (Dictionary): Čuvaju parove ključ-vrednost, koristeći hash funkciju za brzo pretraživanje.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Brzi pristup po ključu
      
    • Skup (Set): Kolekcija jedinstvenih elemenata bez određenog reda.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Duplikat neće biti dodat