Sobes.tech
Junior

Millised andmestruktuurid eksisteerivad?

sobes.tech AI

Vastus AI-lt

Andmestruktuurid jagunevad kaheks peamiseks kategooriaks:

  1. Lineaarne: Elementid on järjestatud järjestikuselt.

    • Massiiv (Array): Fikseeritud suurus, otsene juurdepääs indeksi järgi.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Näide deklaratsioonist
      
    • Nimekiri (List): Düsnaamilise suurusega, elemendid lisatakse ja eemaldatakse.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Seotud nimekiri (Linked List): Elementidel (lülid) on viide järgmisele (ja võib-olla eelnevale) elemendile.
      • Ühesuunaline
      • Kahe suunaga
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Kuhja (Stack): Viimasesse sisestatud element eemaldatakse esimesena (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Element lisamine
      int item = stack.Pop(); // Element eemaldamine ja tagastamine
      
    • Järjekord (Queue): Esimene sisestatud element eemaldatakse esimesena (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Task 1"); // Element lisamine
      string task = queue.Dequeue(); // Element eemaldamine ja tagastamine
      
  2. Mittekohustuslik: Elementid ei ole järjestatud.

    • Puu (Tree): Hierarhiline struktuur, millel on juur ja harud.
      • Topeltpuu
      • B-puu
      • Punane-must puu
      • AVL puu
    • Graaf (Graph): Väravad (tipud) ja servad (ühendused).
      • Suunatud (Directed)
      • Suunamata (Undirected)
    • Hash-tabel (Hash Table) / Sõnastik (Dictionary): Paari võtme-väärtusega, kasutades kiire otsingu jaoks hash-funktsiooni.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Kiire juurdepääs võtme järgi
      
    • Kogu (Set): Unikaalsete elementide kogum, mis ei ole määratletud järjekorras.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Duplikaat ei lisandu