Page 55 - 4656
P. 55

Алгоритми і структури даних. Лабораторний практикум.

                              Лабораторна робота № 7.
                                           Стек

                    Мета:  ознайомитись  із  поняттям  стеку у програмуванні.
            Алгоритм роботи стеку. Застосування індексів і з’єднань.

            Теоретичні відомості

                    Стек в інформатиці та програмуванні - різновид лінійного
            списку,  структура  даних,  яка  працює  за  принципом
            (дисципліною) «останнім прийшов - першим пішов» (LIFO, англ.
            last in, first out). Всі операції (наприклад, видалення елементу) в
            стеку  можна  проводити  тільки  з  одним  елементом,  який
            знаходиться на верхівці стеку та був введений в стек останнім.
                    Стек  можна  розглядати  як  певну  аналогію  до  стопки
            тарілок,  з  якої  можна  взяти  верхню,  і  на  яку  можна  покласти
            верхню тарілку (інша назва стеку — «магазин», за аналогією з
            принципом роботи магазину в автоматичній зброї.
                    Операції зі стеком:
                    - push («заштовхнути елемент»): елемент додається в стек
            та  розміщується  в  його  верхівці.  Розмір  стеку  збільшується  на
            одиницю. При перевищенні розміру стека граничної величини,
            відбувається переповнення стека (англ. stack overflow).
                    -  pop  («виштовхнути  елемент»):  отримує  елемент  з
            верхівки стеку. При цьому він видаляється зі стеку і його місце в
            верхівці стеку займає наступний за ним відповідно до правила
            LIFO, а розмір стеку зменшується на  одиницю.  При намаганні
            «виштовхнути»  елемент  з  вже  пустого  стеку,  відбувається
            ситуація «незаповнення» стеку (англ. stack underflow).
                    Кожна з цих операцій зі стеком виконується за фіксований
            час O(1) і не залежить від розміру стеку.
                    Додаткові операції (присутні не у всіх реалізаціях стеку):
                    1.  isEmpty:  перевірка  наявності  елементів  в  стеку;
                       результат: істина (true), коли стек порожній.
                                                                             53
   50   51   52   53   54   55   56   57   58   59   60