Page 27 - 4656
P. 27

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

            виникає  необхідність  включити  в  нього  додаткові  елементи.
            Точно  так,  фіксований  масив,  з  якого  було  видалено  багато
            елементів  (або  вони  просто  не  використовуються)  є  дуже
            неефективним       з    точки    зору     використання      пам'яті.
            Функціонування  списків  можливо  в  ситуації,  коли  пам'ять
            комп'ютера  фрагментована,  тоді  як  масиви  переважно
            потребують неперервної області для зберігання.
                    З іншого боку, масиви дозволяють безпосередній доступ
            до  будь-якого  елементу.  Однобічно  зв'язані  списки,  натомість,
            потребують  проходження  усіх  попередніх  елементів.  Це
            призводить  до  складнощів  застосування  списків  в  задачах,  де
            необхідно  швидко  знаходити  елемент  за  його  індексом,
            наприклад в алгоритмах сортування. Кешування списків в таких
            випадках майже не дає ефекту.
                    Іншим очевидним недоліком списків є необхідність разом
            з корисною інформацією додаткового збереження інформації про
            вказівники,  що  позначається  на  ефективності  використання
            пам'яті цими структурами.
                    Переваги списків над масивами
                    Можливість додавати вузол у кінець списку. Масив має
            статичний розмір, і, якщо, вільного місця там немає, доведеться
            створювати масив більшого розміру, копіювати у нього елементи
            «старого» масиву і тільки після цього додавати новий елемент
                    Можливість видаляти вузол і звільнювати пам'ять, яку він
            займав.  У  масиві  можна  лише  зсунути  елементи  і  розглядати
            його,  як  масив  меншого  розміру.  Пам'ять  при  цьому  не
            звільняється.
                    Можливість  вставляти  вузол  у  середину  списку.  При
            умові,  що  масив  не  заповнений  до  кінця,  можна  «розсунути»
            елементи  і  вставити  між  ними  необхідний.  Якщо  ж  масив
            повний — доведеться створювати новий масив більшого розміру,
            копіювати елементи і вставляти новий.
                    Недоліки списків перед масивами:
                                                                             25
   22   23   24   25   26   27   28   29   30   31   32