Junior
150
questionbank
Какие существуют структуры данных?
Ответ от нейросети
sobes.tech AI
Существуют линейные и нелинейные структуры данных.
Линейные структуры данных:
- Массивы (Arrays)
- Списки (Lists)
- Односвязные списки (Singly Linked Lists)
- Двусвязные списки (Doubly Linked Lists)
- Кольцевые списки (Circular Linked Lists)
- Стеки (Stacks)
- Очереди (Queues)
Нелинейные структуры данных:
- Деревья (Trees)
- Двоичные деревья (Binary Trees)
- Сбалансированные деревья (Balanced Trees, например, AVL, красно-черные деревья)
- B-деревья (B-Trees)
- Графы (Graphs)
- Хеш-таблицы (Hash Tables)
- Множества (Sets)
В C# стандартная библиотека (System.Collections и System.Collections.Generic) предоставляет реализации многих из этих структур:
ArrayList<T>(динамический массив, аналог ArrayList)LinkedList<T>(двусвязный список)Stack<T>Queue<T>HashSet<T>Dictionary<TKey, TValue>(хеш-таблица)SortedList<TKey, TValue>SortedDictionary<TKey, TValue>- Существуют также более специализированные структуры, например, в пространствах имен System.Collections.Immutable или System.Collections.Concurrent.
Пример использования списка в C#:
// Использование List<T>
List<int> numbers = new List<int>();
numbers.Add(1); // Добавление элемента
numbers.Add(2);
int first = numbers[0]; // Доступ по индексу
numbers.RemoveAt(0); // Удаление по индексу
Пример использования словаря (хеш-таблицы) в C#:
// Использование Dictionary<TKey, TValue>
Dictionary<string, int> ageByName = new Dictionary<string, int>();
ageByName.Add("Alice", 30); // Добавление пары ключ-значение
ageByName["Bob"] = 25; // Добавление или обновление
bool exists = ageByName.ContainsKey("Alice"); // Проверка наличия ключа
int age = ageByName["Alice"]; // Доступ по ключу
ageByName.Remove("Bob"); // Удаление по ключу