Sobes.tech
Junior

Quelles sont les structures de données existantes?

sobes.tech IA

Réponse de l'IA

Les structures de données se divisent en deux catégories principales:

  1. Linéaires : Les éléments sont disposés séquentiellement.

    • Tableau (Array) : Taille fixe, accès direct par index.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Exemple de déclaration
      
    • Liste (List) : Taille dynamique, les éléments sont ajoutés et supprimés.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Liste chaînée (Linked List) : Les éléments (nœuds) contiennent une référence au suivant (et éventuellement au précédent).
      • Simplement chaînée
      • Doublement chaînée
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Pile (Stack) : Dernier entré, premier sorti (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Ajoute un élément au sommet
      int item = stack.Pop(); // Supprime et retourne l'élément du sommet
      
    • File (Queue) : Premier entré, premier sorti (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Tâche 1"); // Ajoute un élément à la fin
      string task = queue.Dequeue(); // Supprime et retourne l'élément du début
      
  2. Non linéaires : Les éléments ne sont pas disposés séquentiellement.

    • Arbre (Tree) : Structure hiérarchique avec un nœud racine et des descendants.
      • Arbre binaire
      • Arbre B
      • Arbre rouge-noir
      • Arbre AVL
    • Graphe (Graph) : Ensemble de sommets (nœuds) et d'arêtes (liens) entre eux.
      • Orienté (Directed)
      • Non orienté (Undirected)
    • Table de hachage (Hash Table) / Dictionnaire (Dictionary) : Stockent des paires clé-valeur, utilisant une fonction de hachage pour une recherche rapide.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Accès rapide par clé
      
    • Ensemble (Set) : Collection d'éléments uniques sans ordre spécifique.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Le doublon ne sera pas ajouté