Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ICM
Лабораторна робота №4
з дисципліни “Алгоритми і структури даних”
“ Стек і черга. Хеш таблиця.”
Львів 2007
Тема: Стек і черга. Хеш таблиця.
Мета роботи: набуття навичок моделювання зв’язаних динамісних структур даних та роботи з ними
Завдання на роботу:
Розробити підпрограми, які забезпечують запити на запис або читання даних з черги, стека або дека. Для організації вказаних структур використовувати масиви або списки. Перевірити працездатність розроблених підпрограм. Послідовність виконання операцій запису або читання вибираються випадково. Порівняти результати роботи, зробити висновки.
1
Розробити підпрограми роботи пріоритетною чергою. Постановка запитів в чергу виконується по пріоритету, зняття - підряд з молодших адрес ( засади черги). Черга організована на масиві із зрушенням після кожного читання і на масиві із зрушенням після досягнення межі пам'яті, яка виділена для черги. Пріоритет: мin значення числового параметра, при збігу параметрів - LIFO
Хід виконання завдання
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define M 10
typedef struct List{
int items[M];
int head;
int tail;
};
struct List L;
void Vvedennya();
void Chytannya();
void main(void)
{
int i,n;
double k;
clrscr();
printf("\nVvedit kilkist chysel:\t");
scanf("%d",&n);
for(i=0;i<n;i++)
{
if(L.tail==M-1)
if(L.head==0)
{
printf("4erha povna!\nVvedennja perervane!\n");
break;
}
Vvedennya();
}
printf("Skilku z4utatu?\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
Chytannya();
}
printf("\n");
}
void Chytannya()
{
printf("%d ",L.items[L.head]);
L.head++;
}
void Vvedennya()
{
scanf("%d",&L.items[L.tail]);
L.tail++;
}
Висновок: на даній лабораторній роботі я набув практичних навичок застосування операцій над стеком і чергою.