
- •1. Сортування
- •1.1. Сортування масивів
- •1. Сортування простими включеннями;
- •2. Сортування простим вибором;
- •1.1.1. Сортування простими включеннями
- •1.1.2. Сортування простим вибором
- •1.1.3. Сортування простим обміном (засіб “бульбашки”)
- •1.1.4. Шейкер-сортування
- •1.1.5. Швидке сортування
- •1.2. Сортування масива рядків
- •1.3. Сортування файлів
- •2. Рекурсивні алгоритми
- •2.1. Алгоритми з поверненням
- •2.1.1. Шахова задача про хід коня
- •2.1.2. Шахова задача про вісім ферзів
- •3. Динамічні інформаційні структури
- •3.1. Динамічні змінні. Вказівники
- •3.1.1. Засоби створення та використання динамічних даних
- •3.2. Рекурсивні типи даних
- •3.3. Списки
- •3.3.2. Двозв’язні та кiльцевi списки
- •3.3.3. Черги і стеки
- •3.4. Деревовидні структури
- •3.4.1. Бінарні дерева
- •3.4.2. Ідеально збалансовані дерева
- •3.4.3. Дерева пошуку
- •3.4.4. Збалансовані дерева (авл-дерева)
- •4. Завдання до лабораторних та контрольних робіт.
- •4.1. Сортування.
- •4.2. Списки.
4. Завдання до лабораторних та контрольних робіт.
4.1. Сортування.
Порівняти різні методи сортування масивів:
-
простим включенням
-
простим вибором
-
простим обміном (“бульбашка”)
-
Шейкер – сортування
-
4 – сортування , або сортування Шелла
-
сортування з розподілом, або швидке сортування
4.2. Списки.
- Створити лінійний однозв’язний список, вивести його.
-
Поміняти місцями максимальний та мінімальний елементи списка.
-
Якщо в списку є елемент із заданим ключем, вилучити його.
-
Після першого елемента, більшого за елемент із заданим ключем, вставити максимальне значення.
-
Відсортувати список.
1. У списку переставити у зворотному порядку всi елементи промiж першим i останнiм входженнями заданого елемента, якщо вiн входить у список не менше двох разiв.
2. У списку удвоїти кожне входження заданого елемента, якщо такi є.
3.
В кiнець непустого списка додати всi
елементи, розмiстити їх у зворотному
порядку (1 2 3
1 2 3 3 2 1).
4. Визначити чи є симетричним заданий у вхiдному текстi файл.
5. Дана послiдовнiсть не менше нiж з п’яти рiзних натуральних чисел. Надрукувати в зворотному порядку всi числа мiж першим i останнiм.
6. Дана послiдовнiсть слiв. Надрукувати всi слова максимальної довжини.
7. Дана послiдовнiсть слiв. Надрукувати цi слова за алфавiтом, для однакових вказати кiлькiсть входжень.
8. З послідоаності слів вилучити ті, що повторюються.
9.
В заданому рядку, що складається з слiв,
перед кожною групою однакових букв
слова поставити цифру, що зображує
кiлькiсть входжень даної букви у групу
(програмування
програмува2ня).
10. Пiдрахувати кiлькiсть входжень кожної букви у текст.
11. Знайти середнє арифметичне елементiв послiдовностi, що складається з чисел.
12. З послiдовностi чисел вилучити однаковi, залишивши їх по одному.
13. З послiдовностi чисел вилучити число, яке знаходиться за першим максимальним.
14. В послiдовностi чисел знайти останнє максимальне та перше мiнiмальне, помiняти їх мiсцями.
15. Задано натуральне число n, дiйснi числа x(1) ... x(n), (n>=2). Одержати послiдовнiсть x(1) – x(n), x(2) – x(n), ... , x(n‑1) – x(n).
16. Задано натуральне число n, дiйснi числа a(1),...,a(n). Якщо послiдовнiсть a(1),...,a(n) впорядкована так, що a(1) <= a(2),...,<= a(n), то залишити її без змiнення. Інакше одержати послiдовнiсть a(n),...,a(1).
17. Задано натуральне число n, дiйснi числа a(1), ..., a(2n). Одержати послiдовнiсть (a(1) – a(2n)), (a(3) – a(2n‑2)) ...
18. Надрукувати вмiст текстового файлу, виписуючи дiтери кожного його рядка у зворотному порядку.
19. Перевiрити баланс дужок у програмi, написанiй на Сi.
20. За один перегляд файла типу file оf real i без використання додаткових файлiв надрукувати елементи файла в наступному порядку: спочатку всi числа, меншi за A, потiм числа з диапазону [A;B] i, нарештi, всi iншi числа. В кожнiй з трьох груп зберегти взаємний порядок.
21. Вмiст текстового файла f1, подiлений на рядки, переписати у файл f2, переносячи при цьому в кiнець кожного рядка всi цифри, якi входять у рядок. Взаємний порядок серед цифр зберегти.
22. За один перегляд файлу чисел вивести спочатку від’ємні, потім додатні числа у порядку їх появи у тексті.
23. Зі списку вилучити слова, що складаються з одинакових символів.
25. Із кільцевого списку вилучити n елементів. З них створити інший список.
4.3. Дерева
-
Побудувати ідеально збалансоване дерево
- Вилучити послідовно всі види вузлів: термінальний, вузол з одним нащадком, вузол з двома нащадками
-
З того ж набору ключів побудувати дерево пошуку
-
Вилучити послідовно всі види вузлів
-
З того ж набору ключів побудувати збалансоване дерево пошуку
-
Вилучити послідовно всі види вузлів
1. По дереву пошуку надрукувати ключi в порядку збiльшення значень, розташувати їх у рядок.
2. Пiдрахувати кiлькiсть вузлiв на кожному рiвнi дерева.
3. Пiдрахувати кiлькiсть вузлiв на нижньому рiвнi (кiлькiсть рiвнiв пiдрахувати при створеннi дерева).
4. В iдеально збалансованому деревi помiняти мiсцями максимальний та мiнiмальний елементи.
5. В деревi пошуку мiнiмальний елемент зменшити вдвоє, максимальний збiльшити вдвоє.
6. Для заданої послiдовностi цiлих чисел побудувати дерево пошуку та пронумерувати його вершини вiдповiдно до їх порядку при iнфiксному обходi дерева.
7. Перевiрити чи є задане бiнарне дерево деревом пошуку.
8. Визначити чи є в даному деревi елемент iз заданим ключем, i, якщо є, то визначити, чи є вiн коренем, чи вершиною з одним нащадком, вершиною з двома нащадками, листком.
9. Надрукувати всi листки (термiнальнi елементи) дерева.
10. Створити копiю дерева в зеркальному відображенні.
11. Визначити, на якому рівні сума елементів максимальна.
12. Визначити довжину шляху від кореня до вершини з заданим ключем.
13.Вивести в алфавітному порядку список учасників шахматного турніру.
14. В лівому піддереві замінити значення елементів – листків на 100.
15. Відсортувати список за допомогою дерева.
16. Побудувати дерево пошуку з елементів правого піддерева ідеально збалансованого дерева, вивести ключі в порядку зменшення.
17. Побудувати генеалогічне дерево. Вивести імена всіх прбабусь по материнській лінії у вигляді: бабуся – Ольга, прабабуся - Тетяна і т.д.
18. Переставити місцями самий лівий і самий правий елементи лерева пошуку.
19. По генеалогічному дереву вивести імена дідусів, прадідусів.
20. Найти суму елементів правого ребра правого піддерева.
21. Відсортувати за допомогою дерева список студентів групи, який зберігається у файлі.
22. Надрукувати в алфавітному порядку всі різні слова заданого тексту без повторень, вказати для кожного кількість входжень.
23. Вивести елементи заданого ідеально збалансованого дерева за зменшенням.
24. На основі заданого дерева пошуку побудувати ідеально збалансоване дерево , у вершині якого був би найменший елемент
-
Елементи лівого піддерева збалансованого дерева пошуку зменшити на 1, а правого – збільшити у 10 разів.
Лiтература
1. Вирт Н. Систематическое программирование. Введение : Пер. с англ.- М.:Мир,1977.-183 с.
2. Вирт Н. Алгоритмы + структуры данных = программы : Пер. с англ. М.:Мир,1985.-406 с.
3. Бородич Ю.С.,Вальвачев А.Н.,Кузьмич А.И. Паскаль для персональных компьютеров.-Минск,Вышейшая школа,1991.-365 с.
4. Зуев Е. А. Программирование на языке Turbo Pascal 6.0 7.0.- M.:Радио и связь.1993. -380 с.
5. Абрамов С. А., Зима Э. В. Начало программирования на языке Паскаль. – М.: Наука, 1987. -112 с.
6. Макогон В.С. Практическое руководство по программированию на языке Паскаль. -Киев,УМК ВО, 1989 -104 с.
7. Прайс Д. Программирование на языке Паскаль: Практическое руководство. М.: Мир, 1987. – 232 с.
8. Уилсон И. Р., Еддимон А. К. Практическое введение в Паскаль. Пер. с англ. М.: Радио и связь. 1983. – 144 с.
9. Форсайд Р. Паскаль для всех. М.: Машиностроение. 1986. – 288 с.
10. Хьюз Дж., Митчел Дж. Структурний подход к программированию. М.: Мир, 1980. – 280 с.