- •Лекція 1
- •Основні визначення та поняття
- •1.1.Термінологія
- •1.2. Класифікація структур данях
- •1.3. Основні операції над структурами даних
- •Контрольні запитання
- •Лекція 2 алгоритми. Складність алгоритмів
- •1. Зображення алгоритмів
- •2 Складність алгоритмів
- •3. Класи алгоритмів
- •Контрольні запитання
- •Лекція 3 методи сортування
- •Лекція 4 методи сортування (продовження)
- •4. Сортування включенням
- •5. Сортування розподілом
- •6. Сортування злиттям або об’єднанням
- •Лекція 5 Дерева
- •1. Основні визначення та поняття
- •2. Бінарні дерева
- •3. Зображення в пам‘яті комп‘ютера графоподібних структур
- •Контрольні запитання
- •Лекція 6 дерева (продовження)
- •4. Сортування на деревах
- •4.2. Пірамідальне сортування.
- •Контрольні запитання
- •Лекція 7 лінійні структури даних
- •1. Стеки, черги, деки
- •1.1. Стеки
- •1.2. Черги
- •1.3. Деки
- •1.4. Організація стеків, черг і деків
- •Контрольні запитання та вправи
- •3. Множини I кортежі
- •4. Зберігання множин і масивів
- •4.1 Зберігання розріджених матриць
- •Контрольні запитання
- •Лекція 9 Лінійні списки
- •1. Основні визначення та поняття
- •2. Однонаправлені списки
- •3. Двонаправлені списки
- •4. Циклічні списки
- •Контрольні запитання та вправи
- •Лекція 11 нелінійні структури даних
- •1. Таблиці
- •2. Зображення таблиць
- •Контрольні питання
- •Лекція 13 Пошук даних
- •1. Послідовний або лінійний пошук
- •2. Двійковий пошук
- •1. Дерева порівнянь на векторній пам‘яті.
- •3.Пошук у таблиці
- •4. Прямий пошук стрічки
- •5. Алгоритм Кнута, Моріса і Прата пошуку в стрічці.
- •7. Алгоритми з поверненням
- •Лекція 14 Пошук у таблиці
- •1. Пошук у таблицях з обчислюваними адресами
- •2. Пошук у таблицях з прямим доступом
- •3. Пошук у Хеш-таблицях.
- •Контрольні питання
Контрольні запитання
1. Яку структуру називають масивом?
2. Які бувають масиви і чим вони характеризуються?
3. Як задається розмірність масиву?
4. Перелічіть найбільш поширені операції над масивами.
5. Нехай задана прямокутна матриця A[20 х ЗО]. Обчисліть індекс елемента А (7, 13) при зберіганні матриці "по стовпцях" і "по рядках".
6. Обчисліть індекс елемента A (5, 12, 9) трьохмірного масиву A [ 10 х 20 х 15] при зберіганні його "по рядках" і "по стовпцях".
8. Які ви знаєте способи зображення множин у пам‘яті?
9. Яку множину доцільно зображувати вектором бітів?
10. Який вигляд у пам‘яті ЕОМ буде мати множина з семи елементів, кожний з яких може дорівнювати квадрату числа від 1 до 10?
11. Як знайти елемент Аji верхньої трикутної матриці без діагональних елементів, що зберігається у векторній пам‘яті "по стовпцях"?
Лекція 9 Лінійні списки
1. Основні визначення та поняття
Раніше розглядались структури, в яких зв'язок між елементами заданий неявно. Однак в класі лінійних структур даних існують значно складніші зв'язні структури, в яких функціональний зв'язок між його елементами заданий явно. До таких структур належать спискові. Розглянемо найпростіші з таких структур, а саме, лінійні списки.
Список, що відображає відношення сусідства між елементами, називають лінійним. Будь-який інший список вважається нелінійним. Тип списків визначається типом зв'язків між його елементами. За кількістю зв'язків розрізняють списки одно- і багатозв'язні, а за типом функції зв'язку - лінійні і нелінійні.
Основний принцип спискової структури даних полягає в тому, що логічний порядок слідування елементів задається сукупністю посилань або вказівників. У послідовній пам'яті дані розміщуються в послідовних одиницях пам'яті і цим визначається порядок їх слідування.
Отже, поняттю "список" можна дати таке пояснення: організацію зберігання даних, при якій логічний порядок слідування даних визначається посиланнями aбo вказівниками, називають списковою організацією пам'яті, а дані, що зберігаються таким чином, - списком. Спискова організація пам'яті має також назву зчеплення.
Елемент списку складається з двох полів - безпосереднього значення елемента даних і вказівника на наступний елемент списку. У деяких випадках значення елементів даних можуть зберігатися окремо, тоді у полі "значення" елемента списку може знаходитися вказівник на місцезнаходження цього елемента даних. Вказівники елементів списку називають також адресами зв'язку, або зв'язками.
Однією з основних властивостей списків є те, що елементи розміщуються в пам'яті довільним способом, а не в суміжних одиницях пам'яті, як у векторах.
Кожний список має свій заголовок, у якому зберігається посилання на перший елемент списку. Заголовок списку називають також іменем списку. Всі інші елементи досягаються шляхом проходження списку за допомогою вказівників.
Існує два способи зображення списків : 1) графічний (рис.1,а); 2) дужковий (рис.1,б).
Рис.1. Приклади зображення списків: а - графічний; б – дужковий
При графічному способі список зображується у вигляді ланцюга, кожна ділянка якого складається з двох полів - довідки і тіла. Дужковий вираз для зображення списку зручний тоді, коли списки складаються з різних типів даних і зміна одного списку не впливає на другий. Наприклад, на рис.1,а зображено список, у якого в полі тіла елемента записано безпосередньо значення елемента даних, а на рис.1,б - вказівник на місцезнаходження елемента даних. Дужковий вираз у обох випадках залишається однаковим і не відображає різного вмістимого поля тіла елементів списку.
При обробці списків найчастіше виконуються такі дії:
1) доступ до к -го елемента списку з метою аналізу і заміни його полів;
2) включення нового елемента безпосередньо перед заданим;
3) виключення заданого елемента;
4) об’єднання декількох списків в один;
5) розбиття списку на два або більше списки;
6) копіювання списку;
7) визначення кількості елементів у списку;
8) знаходження елемента за заданими властивостями;
9) пересортування або впорядкування елементів списку у висхідному або низхідному порядку.