Sobes.tech
Junior

Welke gegevensstructuren bestaan er?

sobes.tech AI

Antwoord van AI

Gegevensstructuren worden in twee hoofdcategorieën verdeeld:

  1. Lineair: Elementen zijn sequentieel gerangschikt.

    • Array: Vaste grootte, directe toegang via index.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Voorbeeld van declaratie
      
    • Lijst (List): Dynamische grootte, elementen worden toegevoegd en verwijderd.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Gelinkte lijst (Linked List): Elementen (knopen) bevatten een verwijzing naar de volgende (en mogelijk de vorige).
      • Enkelvoudig gelinkt
      • Dubbel gelinkt
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Stack: Last in, first out (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Element toevoegen aan de top
      int item = stack.Pop(); // Element verwijderen en teruggeven
      
    • Queue: First in, first out (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Taak 1"); // Element toevoegen aan het einde
      string task = queue.Dequeue(); // Element verwijderen en teruggeven
      
  2. Niet-lineair: Elementen zijn niet sequentieel gerangschikt.

    • Boom (Tree): Hiërarchische structuur met wortelknop en afstammelingen.
      • Binaire boom
      • B-structuur
      • Rood-zwart boom
      • AVL boom
    • Graf (Graph): Set van knooppunten (vertices) en verbindingen (edges) tussen hen.
      • Gericht (Directed)
      • Ongedirectioneerd (Undirected)
    • Hash-tabel (Hash Table) / Woordenboek (Dictionary): Slaat paren sleutel-waarde op, gebruikt een hashfunctie voor snelle zoekopdrachten.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Snelle toegang via sleutel
      
    • Set: Collectie van unieke elementen zonder specifieke volgorde.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Duplicaat wordt niet toegevoegd