Intern
65
questionbank

Какие существуют структуры данных?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Существуют следующие основные структуры данных:

Примитивные (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): Набор вершин (узлов) и ребер (связей), соединяющих вершины. Может быть направленным или ненаправленным, взвешенным или невзвешенным.

Понимание этих структур данных критически важно для написания эффективного и масштабируемого кода. Выбор правильной структуры данных зависит от требований к производительности операций (поиск, вставка,удаление) и характера данных.