Структура даних List / Список. Базова реалізація

Привіт друзі! Вітаю вас на каналі kostrub.online

У попередньому відео інтро в структури даних, ми визначили концепт структур даних і взагалі навіщо нам все це потрібно. Також ми дізнались що структури даних можуть бути представлені як абстрактна модель або конкретна реалізація.

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


Отож погнали, List список - це структура яку ми часто використовуємо у реальному житті. Ми робимо усілякі списки з різними даними. Наприклад, список покупок - це лист зі string / текстовими елементами.

Тож ми можемо визначити абстрактну модель для списку List, як структура що:

  • Зберігає елементи з заданим типом
  • Може додавати або видаляти елемент на будь-якій позиції
  • Може надавити значення елементу з будь-якої позиції у списку

Якщо ви вже трохи знаєте програмування, то ви побачите - що усі ці фічі вже має в собі Array / Масив, наприклад. Це один із стандартних компонентів для будь якої мови програмування високого рівня. Але щоб краще зрозуміти як це все працює під капотом ми зробимо власну реалізацію List, можливо навіть додамо якісь нові методи для роботи зі списком.


Тож давайте підготуємо dev environment / середовище для розробки та почнемо щось робити, бо без практики толку буде реально мало.

Визначимо специфікацію абстрактної моделі для структури даних List / Список:

 
Імплементація для структури даних List / Список: 
 

Git репозиторій https://github.com/kostrub-online/Computer-Science

Тож підведемо підсумок. Сьогодні ми налаштували девелопмент середовище, трішки розібралися зі структурою даних List. Та базовою імплементацією. Якщо вийде вирішити задачі робіть pull request, якщо щось не виходить або є питання пишіть про це в коментарях. Будемо розбиратися та фіксити разом. Наступний топік буде про LinkedList / Зв'язаний список.

Далі більше!


Дописати коментар

0 Коментарі