Практична робота № 4 Лінійні структури даних, їх подання і реалізація.
Лінійна структура даних (С.Д.) - це С.Д. сукупність елементів якої є лінійно впорядкованою. Лінейнимі С.Д. є :
1) Послідовність;
2) Еластична стрічка;
3) Лінійні списки:
а) стек;
б) дек;
в) черга;
г) пріоритетна черга;
4) Рядки.
Можна дати повніше визначення лінійній структурі даних. Це множина складається з n>=0 вузлів x1, x2, x3,.. xn структурні(топологічні) властивості якого по суті обмежуються лише лінійним (одновимірним) відносним положенням вузлів. Тобто якщо n>0, то x1 - перший вузол ; якщо 1<k<n, то xk-1, xk, xk+1 - порядок проходження вузлів, якщо к=n, то xn - останній вузол.
Приведемо операції, які можна виконувати над лінійними С.Д.:
Створити;
CREATE - для динамічних структур;
INIT - для статичних структур;
Отримати доступ до к-му елементу структури з метою дослідження або зміни цього елементу (селектор);
Включити новий елемент безпосередньо перед заданим (після);
Виключити вузол;
Якщо операції 3) і 4) існують, то структуру даних називатимемо динамічною;
Об’єднати дві структури в одну (конкатенація рядків);
Розбити структуру на дві;
Створити копію структури даних;
Визначити кількість елементів в структурі (операції спостерігач);
Виконати сортування елементів структури даних в деякому порядку;
Знайти вузол, що задовольняє заданій умові;
Знищити структуру даних (деструкція) (done, Dtstroy).
Особливу роль грають операції 2 - 4. Саме за допомогою їх можна послідовно конструювати, змінювати і обробляти списки. Важливими представляються випадки коли к = 1 і к = n, тобто операції, що виконуються з першим і останнім елементами структури. Річ у тому, що в таких структурах доступу до першого і останнього елементу виконується значно простіше, ніж до інших елементів. Існують різні способи представлення лінійних С.Д. і залежно від конкретного набору операцій, то або інше подання буде ефективним. Мабуть не існує єдиного методу представлення таких структур, при якому всі ці операції реалізувалися б ефективно. Тому має сенс класифікувати типи лінійних структур по головних операціях, які зніми виконуються. Особливу групу представляють списки, в яких включення, виключення і доступ майже завжди проводиться в першому або останньому вузлах. Розглянемо ці часто використовувані С.Д:
1) Стек - лінійний список, в якому всі включення і виключення робляться в одному кінці списку;
2) Черга - лінійний список, в якому всі включення на одному кінці, а виключення на іншому;
3) Дек - черга з двома кінцями, включення та вилучення виконується на обох кінцях;
4) Архів - дек з обмеженим входом;
5)Реєстр - дек з обмеженим виходом.
У математиці всі ці структури називаються чергами з різними дисциплінами обслуговування. Найчастіше використовуються стек і черга.
Стек це є черга, що організована за принципом LIFO (Last-in-first-out), черга - за принципом FIFO (First-in-first-out). Черги в широкому розумінні слова, грають важливу роль в теорії масового обслуговування, яка визначає поведінку реальної системи методом моделювання на ЕОМ.
Стек.
Інтуітивне поняття.
Операції:
поповнення стека; (PUSH)
перегляд верхнього елементу; (TOP)
знищення верхнього елементу; (POP)
перевірка стека на порожнечу; (IS_EMPTY)