Sobes.tech
Junior

Welche Datenstrukturen gibt es?

sobes.tech KI

Antwort von AI

Datenstrukturen werden in zwei Hauptkategorien unterteilt:

  1. Lineare: Elemente sind sequenziell angeordnet.

    • Array: Feste Größe, direkter Zugriff per Index.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Beispiel für Deklaration
      
    • Liste: Dynamische Größe, Elemente werden hinzugefügt und entfernt.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Verkettete Liste: Elemente (Knoten) enthalten einen Verweis auf das nächste (und möglicherweise auf das vorherige).
      • Einfach verkettete
      • Doppelt verkettete
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Stapel (Stack): Zuletzt rein, zuerst raus (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Element auf den Stapel legen
      int item = stack.Pop(); // Element vom Stapel entfernen und zurückgeben
      
    • Warteschlange (Queue): Zuerst rein, zuerst raus (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Aufgabe 1"); // Element am Ende hinzufügen
      string task = queue.Dequeue(); // Element vom Anfang entfernen und zurückgeben
      
  2. Nicht-lineare: Elemente sind nicht sequenziell angeordnet.

    • Baum: Hierarchische Struktur mit Wurzelknoten und Nachkommen.
      • Binärbaum
      • B-Baum
      • Rot-Schwarz-Baum
      • AVL-Baum
    • Graf: Menge von Knoten (Vertices) und Kanten (Verbindungen) zwischen ihnen.
      • Gerichtet (Directed)
      • Ungerichtet (Undirected)
    • Hash-Tabelle / Wörterbuch: Speichern Paare aus Schlüssel und Wert, verwenden eine Hash-Funktion für schnelle Suche.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Schneller Zugriff per Schlüssel
      
    • Menge (Set): Sammlung von einzigartigen Elementen ohne bestimmte Reihenfolge.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Duplikat wird nicht hinzugefügt