Структура даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Бінарне дерево, одна з найпростіших деревоподібних структур даних

У програмуванні та комп'ютерних науках структу́ра да́них — це спосіб організації даних в комп'ютерах. Часто разом зі структурою даних пов'язується і специфічний перелік операцій, що можуть бути виконаними над даними, організованими в таку структуру.

Правильний підбір структур даних є надзвичайно важливим для ефективного функціонування відповідних алгоритмів їх обробки. Добре побудовані структури даних дозволяють оптимізувати використання машинного часу та пам'яті комп'ютера для виконання найкритичніших операцій.

Відома формула «Програма = Алгоритми + Структури даних» дуже точно виражає необхідність відповідального ставлення до такого підбору. Тому іноді навіть не обраний алгоритм для обробки масиву даних визначає вибір тієї чи іншої структури даних для їх збереження, а навпаки.

Підтримка базових структур даних, які використовуються в програмуванні, включена в комплекти стандартних бібліотек найрозповсюдженіших мов програмування, таких як Standard Template Library (STL) для C++, Java API, Microsoft.NET тощо.

Приклади[ред. | ред. код]

Існує велика кількість різноманітних структур даних, що зазвичай будуються з примітивних типів даних[1]:

  • масив (список) — деяка кількість елементів, упорядкованих певним чином, зазвичай ці елементи належать до одного й того ж типу. Доступ до елементів відбувається завдяки цілочисельному індексу необхідного елементу (хоча самі елементи можуть бути майже будь-якого типу). Масиви можуть бути фіксованої довжини або ж такими, розмір яких можна змінити.
  • зв'язаний список — це лінійна колекція елементів даних будь-якого типу, які називаються вузлами, де кожен вузол містить дані, і вказівник на наступний вузол у зв'язаному списку. Принциповою перевагою зв'язного списку над масивом є те, що елементи завжди можна ефективно додавати й видаляти без перерозподілу всього списку. Звісно, інші операції, такі як довільний доступ до конкретного елементу, є повільнішими в таких списках, ніж у масивах.
  • асоціативний масив (словник, map) — більш гнучка варіація масиву, можна вільно додавати та видаляти пари «ім'я-значення». Геш-таблиця є найзвичнішою реалізацією асоціативного масиву.
  • запис (структура) — агрегована структура даних. Запис — це значення, що містить інші значення. Зазвичай це фіксоване число та послідовність, які індексуються поіменно. Елементи запису зазвичай називають полями або членами
  • об'єднання — структура даних, що зазначає, які із дозволених примітивних типів можуть зберігатись у її екземплярах. На відміну від запису, який можна визначити таким чином, щоб він зберігав і ціле число, і число з рухомою комою, у об'єднанні можна зберігати лише один певний тип. Для зберігання об'єднання виділяється стільки пам'яті скільки необхідно для найбільшого типу даних.

Див. також[ред. | ред. код]

Джерела[ред. | ред. код]

  • Томас Кормен; Чарльз Лейзерсон, Рональд Рівест, Кліфорд Стайн (2009) [1990]. Частина 3: Структури даних. Вступ до алгоритмів (вид. 3rd). MIT Press і McGraw-Hill. ISBN 0-262-03384-4.
  • Ніклаус Вірт (2004) [1975]. Algorithms and Data Structures (PDF). ETH Zürich. с. 366.(англ.)
  • Енциклопедія кібернетики : у 2 т. / за ред. В. М. Глушкова. — Київ : Гол. ред. Української радянської енциклопедії, 1973.


  1. Seymour, Lipschutz (2014). Data structures (вид. Revised first). New Delhi, India: McGraw Hill Education. ISBN 9781259029967. OCLC 927793728.