
- •Вирази і оператори.
- •Логічні оператори.
- •Оператор розгалуження.
- •Оператор вибору.
- •Арифметичні операції. Пріоритет виконання.
- •Вказівники константи.
- •Вказівники змінні.
- •Функції.
- •Функція для роботи з файлами.
- •Передача аргументів у функцію.
- •Значення, яке повертає функція.
- •Рекурсивні функції.
- •Блоки і область видимості змінних.
- •Оператори повторення.
- •Структури. Вкладені структури.
- •Створення класів.
- •Управління виконанням програм.
- •Одновимірні масиви даних.
- •Двовимірні масиви даних.
- •Створення масивів з використанням вказівників.
- •Алгоритми сортування масивів.
- •Рядки і операції над ними.
- •Функції введення-виведення.
- •Конструктори, деструктори.
- •Класи. Успадкування.
- •Класи. Поліморфізм.
- •Класи. Інкапсуляція.
- •Вказівник this.
- •Перевантаження операцій та операторів.
- •Поліморфізм і віртуальні функції.
- •Стандартний клас string.
- •Стандартний клас queue.
- •Стандартний клас vector.
- •Стандартний клас list.
- •Стандартний клас stack.
- •Створення і використання шаблонів функцій та класів.
- •Стандартна бібліотека шаблонів (stl)
- •Доступність методів класу.
- •Конструктор та деструктор класів.
- •Наслідування класів.
- •Використання просторів імен.
- •Шаблони функцій.
- •Шаблони класів.
- •Алгоритми стандартної бібліотеки stl.
- •Динамічні структури типу стек.
- •Динамічні структури типу однонаправлений список.
- •Динамічні структури типу двонаправлений список.
- •Сортування масивів із використанням вказівників.
Динамічні структури типу стек.
Стек є спільною структурою даних для представлення даних, які повинні оброблятися в певному порядку. Наприклад, коли функція викликає іншу функцію, яка, в свою чергу, викликає третю функцію, важливо, щоб третя функція повернулася на другу функцію, а не на першу. Стек складається з вузлів, який має структуру: Nod : Pointer
Data
Один із способів реалізації такого порядку обробки даних - це організувати свого роду чергу викликів функцій. Остання додана в стек функція, буде завершена першою і навпаки, перша додана в стек функція буде завершена останньою. Таким чином, сама структура даних забезпечує належний порядок викликів.
Cтруктура даних - стек дуже проста: вона дозволяє додавати або видаляти елементи в певному порядку. Кожен раз, коли додається елемент, він потрапляє на вершину стека, єдиний елемент, який може бути видалений з стека - елемент, який знаходиться на вершині стека. Таким чином, стек, як прийнято говорити, «першим прийшов, останнім пішов - FILO» або «останнім прийшов, першим пішов - LIFO». Перший елемент, доданий в стек буде видалений з нього в останню чергу.
Стеки мають деякі асоційовані методи:
Push - додати елемент в стек;
Pop - видалити елемент з стека;
Peek - переглянути елементи стека;
Size – Визначає кількість елементів;
LIFO - поведінка стека.
Динамічні структури типу черга.
Черга - структура даних, яка, як і стек, має обмеження, по додаванню і видаленню елементів. Щоб зрозуміти черги, уявіть чергу в магазин: людина на початку черги (той, хто прийшов першим) буде обслуговуватися першим, знову прийшли люди будуть додаватися в кінець черги. Таким чином, перша людина у черзі обслуговується першою, остання в черзі, обслуговується останньою. Скорочено черги позначаються як: FIFO - First In, First Out (першим прийшов, першим пішов).
Черги часто використовуються в програмуванні мереж, операційних систем та інших ситуаціях, в яких різні процеси повинні розділяти ресурси, такі як процесорний час.
enqueue - додавання елемента в чергу;
dequeue - видалення елемента з черги.
Є кілька основних способів реалізації черги. По-перше, просто створити масив і перекласти всі елементи, щоб помістити елемент у чергу або витягти його. Цей випадок є дуже повільним.
Є ще один метод, при якому не зміщуючи елементи в черзі, виконуються функції постановки і видалення елементів з черги. Уявіть собі, знову, черга в магазин. Уявімо, що не черга рухається до продавця, а продавець рухається до черги, таким чином позиція початку черги постійно змінюється, рухається до кінця черги. Таким чином люди, які стоять у черзі не роблять крок вперед або назад, що заощаджує час.
Динамічні структури типу однонаправлений список.
Розглянуті рядки символів, зображені у вигляді ланцюгів, тобто як динамічна структура, є частковим випадком такої структури - лінійного однонапрямленого списку. Різниця полягає в тому, що коли для рядків інформаційними елементами можуть бути тільки значення типу char, то в загальному випадку списків елементами можуть бути значення довільного типу - як прості, так і складені. Однак з метою уніфікації під час опрацювання списку вважатимемо, що всі елементи є значеннями одного типу.
Поле INF - інформаційне поле, дані, NEXT - покажчик на наступний елемент списку. Кожен список повинен мати особливий елемент, званий покажчиком початку списку або головою списку, який зазвичай по формату відмінний від решти елементів. У полі покажчика останнього елементу списку знаходиться спеціальна ознака null, що свідчить про кінець списку.
Рис.1.1. Структура однонаправленого списку
Проте, обробка однонаправленого списку не завжди зручна, оскільки відсутня можливість просування в протилежну сторону.