Sobes.tech
Junior

Кадом сохторҳои дода мавҷуданд?

sobes.tech AI

Ҷавоб аз AI

Структури даних поділяються на дві основні категорії:

  1. Лінійні: Елементи розташовані послідовно.

    • Масив (Array): Фіксований розмір, прямий доступ за індексом.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Приклад оголошення
      
    • Список (List): Динамічний розмір, елементи додаються та видаляються.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Зв’язаний список (Linked List): Елементи (вузли) містять посилання на наступний (і, можливо, попередній) елемент.
      • Однонапрямний
      • Двонапрямний
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Стек (Stack): Останній прийшов - перший вийшов (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Додає елемент на вершину
      int item = stack.Pop(); // Видаляє та повертає елемент з вершини
      
    • Черга (Queue): Перший прийшов - перший вийшов (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Task 1"); // Додає елемент у кінець
      string task = queue.Dequeue(); // Видаляє та повертає елемент з початку
      
  2. Нелінійні: Елементи не розташовані послідовно.

    • Дерево (Tree): Ієрархічна структура з кореневим вузлом і нащадками.
      • Двоїчне дерево
      • B-дерево
      • Червоне-чорне дерево
      • AVL-дерево
    • Граф (Graph): Набір вершин (вузлів) і ребер (зв’язків) між ними.
      • Направлений (Directed)
      • Ненаправлений (Undirected)
    • Хеш-таблиця (Hash Table) / Словник (Dictionary): Зберігають пари ключ-значення, використовуючи хеш-функцію для швидкого пошуку.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Швидкий доступ за ключем
      
    • Множина (Set): Колекція унікальних елементів без визначеного порядку.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Дублікат не буде доданий