
- •1.Питання.(Поняття та складові архітектури комп’ютера)
- •2.Питання.(Поняття архітектури набору команд. Основні групи операцій архітектури набору команд.)
- •3.Питання.(Принципи архітектури фон Неймана)
- •4.Питання(Поняття та властивості алгоритмів)
- •5.Питання(Класифікація алгоритмів)
- •6.Питання(Форми запису алгоритму. Блок-схема алгоритму)
- •7. Основні структурні елементи блок-схеми алгоритму
- •9. Мови високого і низького рівнів програмування. Асемблер.
- •11. Змінна. Ім’я і значення змінної. Правила вибору імені для змінної
- •13. Оголошення та ініціалізація змінних
- •14. Глобальна і локальна змінна. Область дії змінної. Оператор ::
- •15. Оголошення та ініціалізація константи. Типи констант
- •16. Арифметичні операції. Оператор sizeof()
- •17. Оператори відношень. Логічні оператори
- •18. Оператори інкремент/декремент. Оператори присвоєння
- •20. Унарні, бінарні та тернарні оператори. Пріоритет операцій
- •26).Оператори while,do-while
- •27). Оператор for
- •28).Оператори break,continue,go to
- •29).Оператори exit,return
- •30). Структура програми згідно процедурно-орієнтованого підходу.
- •32) Інтерфейс та виклик функції
- •33) Параметри функції
- •35)Inline-функції
- •46)Арифметика вказівників
- •47)Динамічна пам'ять. Оператори new і delete
- •48. Поняття посилання. Оголошення та ініціалізація посилання
- •49. Використання посилання у якості параметру функції
- •50. Оголошення та створення динамічного масиву
- •65)Вкладены структури даних
- •78.Поняття та оголошення об'єднання. Анонімне об'єднання
- •79. Поняття та оголошення переліку
- •80. Типи даних для роботи з датою і часом. Структура tm
- •81. Функції бібліотеки ctime
- •82. Поняття та класифікація зв'язних списків
- •84..86 Оголошення зв’язних циклів
- •91.Навігація по зв’язному списку
- •92Реалізація деструктору зв’язного списку
- •97)Реалізація деструктору стеку
- •98Поняття дерева, ключового вузла, вузлів-нащадків. Висота і глибина дерева
- •99. Основні операції над деревом
- •103. Конструктор дерева
- •104. Дестуктор дерева
91.Навігація по зв’язному списку
Навігація по зв’язному списку здійснюється за допомогою вказівників. Зазвичай їх називають next, prev. В однозвязному списку використовується лише вказівник next, що дозволяє переходити на наступний елемент зв’язного списку. В двозвязному списку використовується вказівник next, prev, що дозволяє переходити по зв’язному списку і на наступний елемент і на попередній.
92Реалізація деструктору зв’язного списку
.LstFilms::~LstFilms(){
SFilm * flm=head, *prevflm;
While (flm!=NULL){
Prevflm=flm;
Flm=flm->next;
Delete prevflm;}
93. Стек. СТЕК в інформатиці та програмуванні -- різновид лінійного списку, структура даних, яка працює за принципом (дисципліною) "останнім прийшов -- першим пішов" (LIFO, last in, first out). Всі операції (наприклад, видалення елементу) в стеку можна проводити тільки з одним елементом, який знаходиться на верхівці стеку та був введений в стек останнім.
Стек можна розглядати як певну аналогію до стопки тарілок, з якої можна взяти верхню, і на яку можна покласти верхню тарілку (інша назва стеку -- "магазин", за аналогією з принципом роботи магазину в автоматичній зброї)
Операції зі стеком
push ("заштовхнути елемент"): елемент додається в стек та розміщується в його верхівці. Розмір стеку збільшується на одиницю. При перевищенні розміру стека граничної величини, відбувається переповнення стека (stack overflow)
pop ("виштовхнути елемент"): отримує елемент з верхівки стеку. При цьому він видаляється зі стеку і його місце в верхівці стеку займає наступний за ним відповідно до правила LIFO, а розмір стеку зменшується на одиницю. При намаганні "виштовхнути" елемент з вже пустого стеку, відбувається ситуація "незаповнення" стеку (stack underflow)
Кожна з цих операцій зі стеком виконується за фіксований час O(1) і не залежить від розміру стеку.
Додаткові операції (присутні не у всіх реалізаціях стеку):
isEmpty: перевірка наявності елементів в стеку; результат: істина (true), коли в стеку немає елементів.
isFull: перевірка заповненості стека. Результат: істина, коли додавання нового елементу неможливе
clear: звільнити стек (видалити усі елементи).
top: отримати верхній елемент (без виштовхування).
size: отримати розмір (кількість елементів) стека.
swap: поміняти два верхніх елементи місцями.
94. Реалізація стеку за допомогою зв’язного списку Стек у вигляді списку (pushdown list) – стек, організований таким чином, що останній елемент, що вводить в область пам'яті, розміщується на вершині списку.Стек є окремим видом зв’язного списку, у якому нові вузли можуть розміщуватися в стек і видалятися (виштовхуватися) з нього тільки на його вершині. З цієї причини стек є структурою даних типу «останнім увійшов – першим вийшов» («last-іn, fіrst-out» – LІFO). Елемент зв’язку в останньому вузлі стека встановлюється на нуль для того, щоб показати дно стека.
struct STACKNODE {
int value;
struct STACKNODE * next;
} stacknode_t;
95 - 96Операції Push і Pop для стеку
- При роботі зі стеком операції занесення і витягнення елемента є основними. Такі операції називають «запхати в стек» => Push, «витягнути зі стеку» => Pop.
-Для реалізації стеку потрібно дві функції – push() I pop()
-Також потрібно виділити область памяті, яка буде використовуватися в якості стеку.
int stack[MAX];
int tos=0; /* вершина стека */
/* запхати елемент в стек */
void push(int i){
if(tos >= MAX) {
printf("Стек повний\n");
return; }
stack[tos] = i;
tos++;}
/* Отримуємо верхній елемт стеку */
int pop(void){
tos--;
if(tos < 0) {
printf("Стек пустий\n");
return 0; }
return stack[tos];}