Структура даних "ЧЕРГА"

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

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

Рік:
2007
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 4 з дисципліни: “Програмування” на тему: Структура даних „ЧЕРГА” Варіант 6 1. Мета роботи Навчитись працювати з структурою даних „ЧЕРГА” 2. Постановка задачі Змоделюйте чергу (або дек) згідно з завданням. Змоделюйте чергу, в якій задається початок черги і довжина черги (замість кінця черги). Чергу представити за допомогою масиву. Перепишіть модуль, що містить набір основних операцій для роботи з чергою (деком), і продемонструйте його застосування для операцій додавання і вилучення елементів в чергу (дек). Для цього задайте послідовність з N цілих чисел. Всі додатні числа послідовно заносяться в чергу (дек), кожне від’ємне число вилучає з черги (деку) один елемент (при роботі з деком, парні числа працюють з одним кінцем деку, а непарні – з іншим). Показувати всі зміни, що будуть відбуватись у черзі (деку). 4. Текст програми Клієнтська програма #include <stdio.h> #include <conio.h> #include "aqueue.h" void main() { queue Q; infotype x; Init(&Q); printf("\nEnter elements in the queue:\n"); do { printf("Enter the new element(zero - break inputing elements): "); scanf("%d",&x); if (x) { if (x > 0) Insert(&Q,x); else Remove(&Q); } Print(Q); } while (x); getch(); return; } Інтерфейс #define size 100 #define infotype int #define printfspec "%d " struct queuetype { infotype data[size]; int head , qsize; } ; typedef struct queuetype queue; void Init(queue *q); int Empty(queue q); int Full(queue q); void Insert(queue *q, infotype new_data); infotype Remove(queue *q); void Print(queue q); Реалізація функцій #include <stdio.h> #include "aqueue.h" void Init(queue *q) { (*q).qsize = 0; (*q).head = 0; return; } int Empty(queue q) { return q.qsize == q.head; } int Full(queue q) { return q.qsize == size; } void Insert(queue *q, infotype new_data) { if (Full(*q)) printf(" Error : Queue overflow ! \n"); else { (*q).data[(*q).qsize] = new_data; (*q).qsize++; } return; } infotype Remove(queue *q) { if (Empty(*q)) { printf(" Error : Queue underflow ! \n"); return 0; } else return (*q).data[(*q).head++]; } void Print(queue q) { int i; printf("Elements of queue: "); if (Empty(q)) printf("Queue is empty ! \n"); else { for (i=q.head;i<q.qsize;i++) printf(printfspec,q.data[i]); printf("\n"); } return; } 5. Результати виконання програми  6. Динаміка вмісту “Черги” 7. Висновки З допомогою цієї лабораторної роботи я навчився працювати з структурою даних “Черга ”.
Антиботан аватар за замовчуванням

06.03.2013 23:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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