Що таке структури даних

Порівнюємо структуру у функціональному та імперативний програмуванні

Варто відразу обмовиться, що проектувати структури для функціональних мов складніше, ніж для імперативних, як мінімум, на це є дві причини:

  • Фактично всі структури часто застосовують на практиці присвоювання, яке в суто функціональному стилі не використовується.
  • Функціональні структури – це гнучкі системи. В імперативному програмуванні старі версії просто замінюються на нові, а у функціональному все працює, як працював. Іншими словами, в імперативному програмуванні структури є ефемерними, а в функціональному вони постійні.
  • Що включає в себе структура?

    Часто дані, з якими працюють програми, що зберігаються у вбудованих в застосовуваному мовою програмування масивах, константі або змінної довжини. Масив – це найпростіша структура з відомостями, однак для вирішення деяких завдань потрібна більша ефективність деяких операцій, тому застосовуються інші структури (складніше).

    Цікаве:  Як очистити жорсткий диск: способи

    Найпростіший масив підходить для частого звернення до встановлених компонентів за індексами і їх зміни, а видалення елементів із середини функціонує за принципом O(N)O(N). Якщо вам потрібно видалити елементи, щоб вирішити певні завдання, то доведеться скористатися іншою структурою. Наприклад, бінарне дерево (std::set) дозволяє робити це за O(logN)O(log⁡N), однак воно не підтримує роботу з індексами, виконується виключно почерговий обхід елементів і їх пошук за значенням. Таким чином, можна сказати, що структура відрізняється операціями, що вона здатна виконувати, а також швидкістю їх виконання. Для прикладу варто розглянути найпростіші структури, що не дають вигоди в ефективності, але мають точно встановлений набір підтримуваних операцій.