Junior
161
questionbank
Какие существуют структуры данных?
Ответ от нейросети
sobes.tech AI
Структуры данных делятся на две основные категории:
-
Линейные: Элементы расположены последовательно.
- Массив (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(); // Удаляет и возвращает элемент из начала
- Массив (Array): Фиксированный размер, прямой доступ по индексу.
-
Нелинейные: Элементы не расположены последовательно.
- Дерево (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); // Дубликат не добавится
- Дерево (Tree): Иерархическая структура с корневым узлом и потомками.