Программная инженерия Нижний Новгород 017 Лабораторный


pMem – указатель на память, выделенную для кольцевого буфера,  MemSize


Download 1.23 Mb.
Pdf ko'rish
bet42/87
Sana08.06.2023
Hajmi1.23 Mb.
#1463900
TuriУчебно-методическое пособие
1   ...   38   39   40   41   42   43   44   45   ...   87
Bog'liq
Pract ADS

pMem – указатель на память, выделенную для кольцевого буфера, 
MemSize – размер выделенной памяти
MaxMemSize – размер памяти, выделяемый по умолчанию, если при создании кольцевого 
буфера явно не указано требуемое количество элементов памяти,
DataCount – количество запомненных в очереди значений, 
Hi – индекс элемента массива, в котором хранится последний элемент очереди
Li – индекс элемента массива, в котором хранится первый элемент очереди. 
Общая схема реализация кольцевого буфера на одноиндексном массиве 
В связи с тем, что структура хранения очереди во многом аналогична структуре хранения 
стек, предлагается класс для реализации очереди построить наследованием от класса стек
описанного в лабораторной работе №3. При наследовании достаточно переопределить методы 
Get и GetNextIndex. В методе Get изменяется индекс для получения элемента (извлечение 
значений происходит из начала очереди), метод GetNextIndex реализует отношение 
следования на кольцевом буфере. 
2.2. Алгоритмы 
2.2.1. Очередь 
Для работы с очередью предлагается реализовать следующие операции: 

Метод Put - добавить элемент; 
а
1
а
n
а
i
а
j
свободная память 
Li - начало 
Hi - конец 


 
49 
Добавление элемента в очередь аналогично добавлению в стек, используется метод класса 
стек. 

Метод Get - удалить элемент; 
При удалении элемента из очереди необходимо возвратить значение из динамического 
массива по индексу начала очереди, переместить указатель начала очереди и уменьшить 
количество элементов. 

Метод IsEmpty - проверить очередь на пустоту; 

Метод IsFull - проверить очередь на полноту. 
Данные методы наследуются из класса стек. 

Download 1.23 Mb.

Do'stlaringiz bilan baham:
1   ...   38   39   40   41   42   43   44   45   ...   87




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling