DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Структура даних "Черга"

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2020
Тип роботи:
Лабораторна робота
Предмет:
Програмування Частина III Структури даних та алгоритми
Група:
КН-31
Коротко про документ

Про що ця робота

Звіт містить виконання лабораторної роботи з вивчення абстрактних структур даних та реалізації черги й дека. Наведено код програми на C++ для моделювання структури даних та демонстрації основних операцій.

У роботі розглядаються

  • Структури даних
  • Черга
  • Дек
  • Алгоритми
  • Програмування на C++
  • Динамічні структури

Зміст і розділи

  1. Мета роботи
  2. Завдання
  3. Код програми
  4. Висновок
Для кого:Студенти технічних спеціальностей, викладачі та дослідники у сфері комп'ютерних наук.
Викладачі:Викладач кафедри

Ключові поняття

чергадекструктура данихалгоритмC++шаблон класуелементопераціявказівникмасив

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Звіт про виконання лабораторної роботи №5 з дисципліни: «Програмування. Частина III. Структури даних та алгоритми » на тему: «Структура даних "ЧЕРГА"» Львів-2020 Мета роботи Вивчення фундаментальної абстрактної структури даних - черги. Набуття практичних навичок побудови черги, дослідження динаміки її вмісту та використання черг для розв'язання прикладних задач. Завдання Змоделюйте чергу (або дек) згідно з завданням. Перепишіть основні операції для роботи з чергою (деком), і продемонструйте їх застосування для операцій додавання і вилучення елементів в чергу (дек). Для цього задайте послідовність з N цілих чисел. Всі додатні числа послідовно заносяться в чергу (дек), кожне від’ємне число вилучає з черги (деку) один елемент (при роботі з деком, парні числа працюють з одним кінцем деку, а непарні – з іншим). Показувати всі зміни, що будуть відбуватись у черзі (деку). 5 завдання Змоделюйте структуру даних ДЕК з обмеженим входом (тобто вилучати з дека можна з обох кінців, а додавати тільки з одного). Код програми: #include<iostream> using namespace std; template <typename T> class DEK { private: T mas[20]; int leght; bool emptyness; public: DEK() { // конструктор leght = 0; emptyness = true; } int size() { // повертає розмір return leght; }; bool empty() { // Повертає true, якщо DEK порожній, і false у противному випадку return emptyness; }; void push_right(T value) { // функція додавання елементу if (leght != 20) { mas[leght] = value; leght++; emptyness = false; for (int i = 0; i < leght; i++) { cout << "|" << mas[i] << "| "; } cout << endl; } else { cout << "DEK is full" << endl; } }; void pop_right() { //функція видалення справа if (leght == 0) { cout << "DEK is empty" << endl; return; } else { leght--; if (leght == 0) { emptyness = true; cout << "DEK is empty" << endl; return; } } for (int i = 0; i < leght; i++) { cout << "|" << mas[i] << "| "; } cout << endl; }; void pop_left() { // функція видалення зліва if (leght == 0) { cout << "DEK is empty" << endl; return; } else { for (int i = 1; i != leght; i++) { mas[i-1] = mas[i]; } leght--; if (leght == 0) { cout << "DEK is empty" << endl; return; } } for (int i = 0; i < leght; i++) { cout << "|" << mas[i] << "| "; } cout << endl; }; T back() { // повертає значення вершини if (leght > 0) { return mas[leght - 1]; } cout << "DEK is empty" << endl; return -1; }; }; int main(void) { DEK <int> dek; int array[7]; for (int i = 0; i < 7; i++) { // задаємо послідовність з 7 чисел cin >> array[i]; } cout << "Your numbers: "; for (int i = 0; i < 7; i++) { cout << array[i] << " "; } cout << endl; for (int i = 0; i < 7; i++) { if (array[i] < 0) { if (array[i] % 2 == 0) { dek.pop_right(); } if (array[i] % 2 != 0) { dek.pop_left(); } } if (array[i] > 0) { if (array[i] % 2 == 0) { dek.push_right(array[i]); } } } if (dek.back() != -1) { cout << "Back of DEK: " << dek.back() << endl; } else { cout << "DEK is empty"; } cout << "DEK is empty:" << dek.empty() << endl; cout << "Size of DEK: " << dek.size() << endl; }; / Висновок Вивчив поняття черги та ДЕКу, його властивості і навчився реалізувати їх програмно.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!