Существуют следующие основные структуры данных:
Примитивные (Primitive):
- Целые числа (Integer)
- Числа с плавающей точкой (Floating-point numbers)
- Булевы значения (Boolean)
- Символы (Character)
Абстрактные (Abstract):
- Массив (Array): Упорядоченная коллекция элементов одного типа, доступ по индексу с постоянным временем.
- Связный список (Linked List): Коллекция узлов, каждый из которых содержит данные и ссылку на следующий узел. Добавление/удаление в начале/конце efficient, доступ по индексу -
O(n).
- Односвязный (Singly Linked List)
- Двусвязный (Doubly Linked List)
- Циклический (Circular Linked List)
- Стек (Stack): Структура данных LIFO (Last-In, First-Out). Операции: push (добавление), pop (удаление), peek (просмотр верхнего элемента).
swift
- Очередь (Queue): Структура данных FIFO (First-In, First-Out). Операции: enqueue (добавление), dequeue (удаление), peek (просмотр первого элемента).
swift
- Хеш-таблица (Hash Table) / Словарь (Dictionary) / Ассоциативный массив (Associative Array): Коллекция пар "ключ-значение", позволяющая эффективный поиск, добавление и удаление по ключу, используя хеш-функцию.
swift
- Множество (Set): Неупорядоченная коллекция уникальных элементов. Поддерживает операции: добавление, удаление, проверка на существование, объединение, пересечение, разность.
swift
- Дерево (Tree): Иерархическая структура данных, состоящая из узлов, связанных ребрами. Имеет корневой узел и дочерние узлы.
- Бинарное дерево (Binary Tree)
- Бинарное дерево поиска (Binary Search Tree - BST)
- Сбалансированное бинарное дерево (Balanced Binary Tree) - AVL, красно-черное дерево.
- B-дерево (B-Tree)
- Граф (Graph): Набор вершин (узлов) и ребер (связей), соединяющих вершины. Может быть направленным или ненаправленным, взвешенным или невзвешенным.
Понимание этих структур данных критически важно для написания эффективного и масштабируемого кода. Выбор правильной структуры данных зависит от требований к производительности операций (поиск, вставка,удаление) и характера данных.