Курсовая работа: Структури даних для обробки інформації
Зміст
Вступ
РОЗДІЛ І. ДИНАМІЧНІ СТРУКТУРИ ДАНИХ
1.1 ЗМІННІ-ВКАЗІВНИКИ
1.2. ЗВ’ЯЗАНИЙ СПИСОК. СТЕК
1.3. ЗВ’ЯЗАНИЙ СПИСОК. ЧЕРГА
РОЗДІЛ ІІ. ДЕРЕВА. БІНАРНЕ ДЕРЕВО
2.1. РЕАЛІЗАЦІЯ БІНАРНОГО ДЕРЕВА ЗА ДОПОМОГОЮ ДИНАМІЧНИХ ЗМІННИХ
ВИСНОВКИ
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
Вступ
Сучасні алгоритми працюють з великим обсягом інформації, і тому час пошуку у таких алгоритмах є критичним. Таким чином, актуальним є розроблення структур даних для ефективного зберігання та обробки інформації.
Однією з таких структур є бінарне дерево. Це динамічна структура даних, розмір якої обмежується тільки розміром віртуальної пам’яті комп’ютера. Бінарні дерева забезпечують пошук конкретного значення, максимуму, мінімуму, попереднього, наступного, операції вставки та видалення елемента.
Пошук у збалансованому дереві виконується за час O(log2 n), але звичайні бінарні дерева можуть вироджуватись у список, при цьому пошук вже триватиме O(n) часу.
У повсякденному житті ми дуже часто зустрічаємо приклади дерев. Наприклад, люди часто використовують генеалогічне дерево для зображення структури свого роду; як ми побачимо, багато термінів, пов'язаних з деревами, узято саме звідси.
Другий приклад - це структура великої організації; використання деревоподібної структури для представлення її "ієрархічної структури" нині широко використовується в багатьох комп'ютерних завданнях.
Третій приклад - це граматичне дерево; спочатку воно служило для граматичного аналізу комп'ютерних програм, а нині широко використовується і для граматичного аналізу літературної мови.
РОЗДІЛ І. ДИНАМІЧНІ СТРУКТУРИ ДАНИХ
Під час роботи довільної програми значення деякої статичної змінної може змінюватися, але власне кількість оголошених статичних змінних не змінюється. Це не завжди зручно. Наприклад, якщо програма призначена для введення та обробки даних про учнів класу, а для збереження цих даних використовується звичайний масив, то визначаючи розмір масиву, приходиться орієнтуватися на деяке, як здається програмісту, граничне значення учнів в класі. При цьому якщо реально учнів в класі менше цього граничного значення, то пам’ять ПК використовується неефективно. Якщо ж учнів більше – то таку програму використовувати взагалі неможна.
В таких задачах зручно використовувати структури (подібні до масивів) в яких кількість елементів може змінюватися. Такими структурами є зв’язані список. Зв’язаний список нагадує масив, в якому кількість елементів змінюється під час роботи програми.
Зв’язаний список можна побудувати використовуючи динамічні змінні. Динамічні змінні можна створювати під час роботи програми («на ходу») за допомогою так званих змінних-вказівників.
1.1 ЗМІННІ-ВКАЗІВНИКИ
Змінну-вказівник можна уявити як звичайну статичну змінну, але таку, в якій зберігається не деяке конкретне значення (наприклад типу integer, real, …), а адрес іншої змінної.
Змінна-вказівник (р) нагадує конверт, який містить лише адресу квартири Петрова, а не її вміст. Можна сказати, що змінна-вказівник р вказує на іншу змінну, яка знаходиться за адресою вул.. 1-го Травня, 58.
Вміст змінної-вказівника р:
Вул. 1 Травня, 58
Вміст змінної за адресою «Вул. 1 Травня, 58» (ця змінна не має імені):
Квартира Петрова
Змінна, що містить значення Квартира Петрова не є звичайною статичною змінною – вона динамічна.
<Ім’я змінної-вказівника>:^тип динамічної змінної
Наприклад, a:^integer; b:^real;
--> ЧИТАТЬ ПОЛНОСТЬЮ <--