lek_01.ppt
- Количество слайдов: 50
МЕТА, ЗАВДАННЯ ТА ОСНОВНІ ПОНЯТТЯ НАВЧАЛЬНОЇ ДИСЦИПЛІНИ «СТРУКТУРИ ДАНИХ»
План 1. Мета і завдання вивчення навчальної дисципліни «Алгоритми та структури даних» 2. Основні поняття навчальної дисципліни «Алгоритми та структури даних»
Рекомендована література: • Алгоритмы и структуры данных: учеб.
• Ключарев А. А. , Матьяш В. А. , Щекин С. В. Структуры и алгоритмы обработки данных: Учеб. пособие/СПб. ГУАП. СПб. , 2003. - 172 с. • Кнут Д. Искусство программирования. В 3 -х томах. - М. , 2002. • Конова Е. А. , Поллак Г. А. , Ткачев А. М. . Структуры данных. Программирование на языке С и С++ / Учебное пособие под ред. Поллак Г. А. – Челябинск, 2004. - 106 с. • Матьяш В. А. , Путилов В. А. , Фильчаков В. В. , Щёкин С. В. Структуры и алгоритмы обработки данных - Апатиты, КФ Петр. ГУ, 2000. - 80 с • Пышкин Е. В. Структуры данных и алгоритмы: реализация на C/C++. - СПб. : ФТК СПБГПУ, 2009. - 200 с. • Рацеев С. М. Язык Си. Структуры данных и алгоритмы : учебное пособие. - Ульяновск: Ул. ГУ, 2011. -214 с. • Структуры данных и алгоритмы в Java / M. T. Гудрич, Р. Тамассия; Пер. с англ. A. M. Чернухо. — Мн. : Новое знание, 2003. — 671 c.
• Трамбле Ж. , Соренсон П. Введение в структуры данных/ Пер. с англ. В. И. Бриккер и др. ;
Мета і завдання вивчення навчальної дисципліни «Структури даних»
– Другий рівень структури Складну програму зазвичай не можна ● Третій рівень представляти у вигляді набору структури програмних модулів до тих пір, поки вона – Четвертий не буде належним чином структурована, рівень або організована. У розробці великих структури програмних систем бере участь багато ● П'ятий рівень людей, і при цьому рішення, прийняті структури одним програмістом (наприклад, вибір ● Шостий імен міток і змінних), не повинні впливати рівень на роботу інших програмістів. Досягти структури цього можна тільки тоді, коли опис і • Сьомий рівень специфікація кожного програмного структури. Образец
Другий рівень При виборі рішення деякої задачі на структури обчислювальній – машині ми стикаємося, по крайній мірі, з чотирма ● Третій рівень взаємопов'язаними підзадачами: структури – Четвертий 1. Глибоко зрозуміти відношення між рівень елементами даних, суттєвими для структури виконання завдання. П'ятий рівень 2. Вибрати необхідні операції над структури логічно пов'язаними елементами ● Шостий даних. рівень структури ● 3. Розробити методи представлення • Сьомий рівень елементів даних в пам'яті машини, структури. Образец
Другий рівень Щоб виявити логічні взаємозв'язки між структури – елементами даних в задачі, необхідно ● Третій рівень усвідомити смисл даних в цілому. Зрозуміло, структури для хорошого розуміння даних слід перш за все – Четвертий проявити особливу увагу до їх підготовки і рівень збору! Дані, що відносяться до певної задачі, структури складаються з набору елементарних одиниць. ● П'ятий Кожна одиниця містить прості елементи (цілі рівень числа, біти, символи) або набір цих елементів. структури Людина, що вирішує певне завдання, прагне ● Шостий встановити зв'язки між елементарними одинирівень цями даних. Вибір їх є необхідним і ключовим структури кроком в точному визначенні завдання і • Сьомий рівень наступному її вирішенні. структури. Образец
Другий рівень Звернемося до другої підзадачі, тобто до вибору структури операцій над використовуваними структурами ● Третій рівень даних. До таких операцій можна віднести структури створення і знищення структури даних, включення – Четвертий або виключення елементів зі структури даних, а рівень також операції доступу до елементів в структурі структури даних. Зрозуміло, ці операції функціонально різні ● П'ятий для різних структур даних. Операції, пов'язані з рівень конкретною структурою даних, можуть бути структури реалізовані у вигляді сукупності підпрограм певною ● Шостий мовою, або ж ці операції можуть бути здійснені за рівень допомогою основних операторів використовуваної структури мови програмування. Яка саме ситуація буде мати місце, залежить від застосовуваних структур даних і • Сьомий рівень доступних мов програмування. структури. Образец –
– Другий рівень структури У будь-якому випадку спосіб маніпулювання ● Третій рівень даними залежить від подання структури даних в пам'яті машини, а це є змістом – Четвертий третьої підзадачі. рівень Представлення певної структури даних в структури пам'яті обчислювальної машини називається ● П'ятий структурою зберігання. Різниця між рівень структурою даних і відповідною структури зберігання часто не враховується, що нерідко ● Шостий призводить до зниження ефективності рівень структури представлення даних і ускладнює розробнику • Сьомий рівень оптимальне використання коштів і ресурсів. структури. Образец
– Другий рівень Четверта підзадача, поставлена структури нами раніше, пов'язана з Третій рівень вибором мови програмування, структури – Четвертий що має бути використана при рівень вирішенні задачі. Якщо в цій структури П'ятий мові програмування відсутні рівень засоби для представлення структури Шостий деякої структури даних, то рівень програма для відповідного структури • Сьомий рівень алгоритму може вийти досить ● ● ● структури. Образец
– Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● П'ятий рівень структури ● Шостий рівень структури • Сьомий рівень структури. Образец
– Другий рівень структури Програми являють собою конкретні ● Третій рівень структури формулювання алгоритмів, засновані на певному поданні структур даних. За влучним – Четвертий рівень визначенням Н. Вірта: структури П'ятий Програма = Алгоритм + Структури● даних рівень структури Перефразовуючи, можна сказати, що ● Шостий програми являють собою конкретні рівень формулювання абстрактних алгоритмів, структури засновані на конкретних уявленнях даних. • Сьомий рівень структури. Образец
Другий рівень структури Мета вивчення нашого курсу - допомогти – студентам освоїти методи структурування ● Третій рівень структури даних і навчитися використовувати ці структури при вирішенні практичних завдань, – Четвертий рівень ознайомлення студентів з особливостями структури сучасних широко використовуваних мов ● П'ятий програмування, їх можливостями, зокрема, рівень для роботи з складними структурами даних, структури алгоритмами вирішення конкретних задач, ● Шостий методиками розробки програм, структурним рівень програмуванням, розкриття сучасних структури наукових концепцій, понять, методів та • Сьомий рівень технологій програмування. структури. Образец
– Другий рівень структури Обробка інформації на ПК Третій рівень вимагає, щоб її структура була структури – Четвертий визначена і точно представлена рівень в ПЕОМ. структури П'ятий Інформація, подана у рівень формалізованому вигляді, структури Шостий придатному для рівень автоматизованої обробки, структури • Сьомий рівень називається даними. ● ● ● структури. Образец
– Другий рівень структури Структура даних визначає їх семантику, Третій рівень структури а також способи організації даних і – Четвертий управління ними. При використанні рівень комп'ютера для зберігання та обробки структури даних необхідно точно визначити тип і П'ятий структуру даних, а також знайти спосіб рівень структури найбільш природного їх подання. Шостий Структури даних і алгоритми служать рівень тим матеріалом, з якого будуються структури програми. • Сьомий рівень ● ● ● структури. Образец
– Другий рівень структури Без розуміння структур даних і Третій рівень алгоритмів неможливо створити структури – Четвертий серйозний програмний продукт - рівень вони служать базовими структури П'ятий елементами будь-якої програми. рівень В організації структур даних і структури Шостий процедур їх обробки закладена рівень можливість перевірки структури • Сьомий рівень правильності роботи програми. ● ● ● структури. Образец
дисципліни: – Другий рівень структури У результаті вивчення дисципліни Третій рівень студенти повинні знати: структури Розподіл оперативної пам’яті; – Четвертий рівень Виділення та звільнення динамічної структури пам’яті; П'ятий Поняття покажчика та його рівень оголошення. Операції над структури покажчиками Шостий рівень Типи динамічних структур даних; структури Спискові структури даних • Сьомий рівень Відмінні характеристики різних структури. Образец ● ● ●
Другий рівень У результаті вивчення структури – дисципліни студенти повинні Третій рівень структури вміти: ● – Четвертий працювати з динамічнимирівень змінними; створювати програми для роботи структури зі списками, чергами, стеками; П'ятий рівень створювати алгоритми роботи з структури бінарними деревами; Шостий працювати з масивами в динамічній рівень пам’яті; структури створювати програми для роботи • Сьомий рівень з бінарними деревами. структури. Образец ● ●
2. Основні поняття навчальної дисципліни «Структури даних»
Структура даних, що розглядається без урахування її подання до машинної пам'яті, називається абстрактною, або логічною. ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури Поняття «фізична структура даних» • відображає спосіб фізичного представлення даних у машинній пам'яті. Второй уровень – ● ● П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста Внаслідок відмінності між логічною і відповідною їй фізичною структурами в обчислювальній системі існують процедури, які здійснюють відображення логічної структури в фізичну, і навпаки. • Третий уровень – Четвертый уровень
Кожну структуру даних можна охарактеризувати її логічним (абстрактним) і фізичним (конкретним) представленнями, а також сукупністю операцій на цих двох рівнях представлення структури. ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Рівні представлення структури даних Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
Під структурою даних в загальному випадку розуміють множину елементів даних і множину зв'язків між ними. Таке визначення охоплює всі можливі підходи до структуризації даних, але в кожній конкретній задачі використовуються ті чи інші його аспекти. Тому – Второй уровень вводиться додаткова класифікація • Третий уровень структур даних, напрямки якої – Четвертый уровень відповідають різним аспектам їх розгляду. ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури Розрізняють прості (базові, примітивні) структури (типи) даних та інтегровані (структуровані, композитні, складні). – Четвертий рівень структури Простими називаються такі структури даних, які не можуть бути розчленовані на складові частини, більші, ніж біти. ● П'ятий рівень структури ● Шостий рівень структури Для фізичної структури важливим є те обставина, що в даній машинній архітектурі і в даній системі програмування • Сьомий рівень структури. Образец текста завжди можна заздалегідь знати, який буде розмір обраного простого типу і яка структура його розміщення в пам'яті. З логічної точки зору прості дані є неподільними одиницями. – Второй уровень • Третий уровень – Четвертый уровень
Інтегрованими називаються такі структури даних, складовими частинами яких є інші структури даних - прості або, в свою чергу, інтегровані. Для редагування структури клацніть мишею ● Інтегровані структури даних конструюються Третій рівень структури Четвертий рівень структури програмістом з використанням засобів П'ятий рівень структури інтеграції даних, що надаються мовами Шостий рівень структури • Сьомий рівень структури. Образец текста програмування. – Другий рівень структури ● – ● ● – Второй уровень В залежності відсутності або наявності явно • Третий уровень заданих зв'язків між елементами даних слід – Четвертый уровень розрізняти незв'язані структури (вектори, масиви, рядки, стеки, черги) і зв'язані структури (зв'язані списки).
Класифікація структур даних за ознакою мінливості ● Для редагування структури клацніть мишею За ознакою мінливості розрізняють структури базові, статичні, напівстатичні, динамічні та файлові. Класифікація структур даних – Второй уровень (СД) за ознакою мінливості наведена • Третий уровень на наступному рисунку. – Четвертый уровень – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури Четвертий рівень структури Класифікація структур даних за ознакою мінливості П'ятий рівень структури – ● ● • Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
• Вектор (одновимірний масив) - структура даних з фіксованим числом елементів одного і того ж типу. ● Для редагування структури клацніть мишею • Масив - послідовність елементів одного типу, що називають базовим. – Другий рівень структури • ● Третій рівень структури Множина - така структура, яка представляє собою набір неповторюваних даних одного і того ж типу. • • • – Четвертий рівень структури Запис – скінченна упорядкована множина полів, що характеризуються різним типом даних. ● П'ятий рівень структури ● Шостий рівень структури Таблиця - послідовність записів, які мають одну і ту ж організацію. • Сьомий рівень структури. Образец текста Списком називається впорядкована множина, що складається із змінного числа елементів, до яких застосовні операції включення, виключення. Список, що відображає відносини сусідства між елементами, називається лінійним. – Второй уровень • Третий уровень – Четвертый уровень
Лінійні та нелінійні структури даних ● Для редагування структури клацніть мишею Важлива ознака структури даних - характер впорядкованості її елементів. – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень За цією ознакою структури можна • Третий уровень ділити на лінійно-впорядковані, або – Четвертый уровень лінійні, і нелінійні структури
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
Лінійні структури даних (СД) - це структури, в яких зв'язки між елементами не залежать від виконання будь-якої умови. Лінійні структури поділяються на три типи: картезіанські, рядкові і спискові. Для редагування структури клацніть мишею Другий рівень структури Картезіанські, або прямокутні, структури названі Третій рівень структури так за способом запису даних у вигляді Четвертий рівень структури П'ятий рівень структури прямокутних таблиць. наприклад: ● – ● ● • Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
Рядкові структури - одномірні, динамічно змінювані структури даних, що розрізняються способами включення і виключення елементів ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
Стек - це послідовність, в якій включення та виключення елемента здійснюється з одного боку послідовності ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень Схема доступу до елементів стека – Четвертый уровень
Відомі приклади стека - гвинтівковий патронний магазин, залізничний роз'їзд длясортування вагонів ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
Черга - послідовність, до якої включають елементи з одного боку, а виключають - з іншого. Структура функціонує за принципом FIFO (першим прийшов – першим обслуговується) ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень Схема доступу до елементів черги – Четвертый уровень
Дек - лінійна структура (послідовність), в якій операції включення і виключення елементів можуть виконуватися як з одного, так і з іншого кінця послідовності ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень Схема доступу до елементів дека – Четвертый уровень
Нелінійні структури даних - це СД, у яких зв'язки між елементами залежать від виконання певної умови. Приклади нелінійних структур - дерева, графи, багатозв'язні списки. • Деревоподібні структури - це ієрархічні структури, що складаються з набору "вершин і ребер, кожна вершина містить певну інформацію і посилання на вершину – Второй уровень нижнього рівня. Дерево - це сукупність • Третий уровень елементів, які називаються вузлами (один з – Четвертый уровень яких визначено як корінь), і відносин, що утворюють ієрархічну структуру вузлів ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста
У спискових структурах логічний порядок даних визначається покажчиками. Будь-яка спискова структура являє собою набір елементів, кожен з яких складається з двох полів: в одному з них розміщено – Второй уровень елемент даних або вказівник на • Третий уровень нього, а в іншому - вказівник на – Четвертый уровень наступний елемент списку. ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
Вершина, що розташовується в нульовому рівні, називається коренем дерева (нумерація рівнів може починатися з 1). В корінь не входить жодного ребра. Вершини, з яких не виходить жодного ребра, називаються листям (вершини 8, 9, – Второй уровень 5, 6, 7). Дерево, з кожної вершини • Третий уровень якого виходить тільки по два ребра, – Четвертый уровень називається бінарним (рис. ) ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень Бінарне дерево – Четвертый уровень
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень Зразки графових структур. Третий уровень • Графи являються собою сукупність двох множин: вершин і – Четвертый уровень ребер. Граф – це складна нелінійна багатозв’язна динамічна структура, що відображає властивості і зв’язки складного об’єкта.
Багатозв'язна структура має такі властивості: 1) на кожен елемент (вузол, вершину) може бути довільна кількість посилань; Для редагування структури клацніть мишею 2) кожен елемент може мати зв'язок з будь-якою Другий рівень структури кількістю інших елементів; Третій рівень структури Четвертий рівень структури 3) кожна зв'язка (ребро, дуга) може мати П'ятий рівень структури Шостий рівень структури напрямок і вагу. • Сьомий рівень структури. Образец текста Типовими графами є схеми авіаліній і схеми – Второй уровень метро, а на географічних картах - зображення залізничних або автомобільних доріг. Вибрані • Третий уровень точки графа називаються його вершинами, а – Четвертый уровень з'єднуючі їх лінії - ребрами. ● – ● ●
Сплетіння (багатозв'язний список, плекс) - це нелінійна структура даних, яка об'єднує такі поняття, як дерево, граф і спискову структуру. Основна властивість сплетінь, відмінна від інших типів структур, - наявність у кожного елемента – Второй уровень сплетення декількох полів з • Третий уровень вказівниками на інші елементи того ж – Четвертый уровень сплетіння ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста
● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Второй уровень • Третий уровень – Четвертый уровень
Сплетіння - зв'язок елементів, заснований на сплетенні покажчиків. Кожен елемент сплетення може містити інформацію про кількість полів з вказівниками та формат поля даних. Комплекси (сплетіння) використовуються для представлення різних сімейств зв'язків між індивідуумами і – Второй уровень власниками, відображають виробничі, • Третий уровень галузеві зв'язки тощо. ● Для редагування структури клацніть мишею – Другий рівень структури ● Третій рівень структури – Четвертий рівень структури ● ● • П'ятий рівень структури Шостий рівень структури Сьомий рівень структури. Образец текста – Четвертый уровень
Запитання?
Дякую за увагу !!!


