Работа с динамической очередью. Dünaamiline järjekord.

Презентация:



Advertisements
Похожие презентации
Стек (Stack, Pinu, LIFO) Стек является одной из наиболее используемых и наиболее важных структур данных. Стеки применяются очень часто: Stekke kasutatakse.
Advertisements

Реализация стеков с помощью массивов. Pinu realisatsioon massiivi abil.
Распределение памяти. Динамическое выделение памяти.
Пусть у нас есть очередь из трех элементов а, в и с, в которую первым был помещен элемент а, а последним элемент с. АВС Esimene Viimane Esimene начало.
Структуры и алгоритмы обработки данных Лекция. Структуры. Связные списки. Заикин Олег Сергеевич zaikin.all24.org.
Абстрактный тип данных список. Операции над абстрактным списком Создать пустой список Уничтожить список Определить, пуст ли список Определить количество.
Реализация списков:динамические структуры ListList clasclas структура одного элемента type LIST = celltype; celltype = record element: eltype; next: LIST.
Сложные структуры данных Связные списки. Структуры, ссылающиеся на себя struct node { int x; struct node *next; };
Списки Лекция 10. Списки Список – структура данных, представляющая собой конечную последовательность элементов. Элемент списка: Данные Связь.
Перегрузка функций. Funktsioonide ümberlaadimine..
Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
Лекция 4 Односвязанный список. Двусвязаный список.
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Лекция 14 Динамические данные. Виды памяти Существует три вида памяти: статическая, стековая и динамическая. Статическая память выделяется еще до начала.
Двумерные динамические массивы. Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор.
Отладка программы. Классификация ошибок 1.синтаксические; 2. ошибки времени выполнения; 3.алгоритмические. Синтаксические ошибки, обнаруживает компилятор,
Ограничение целостности CHECK задает диапазон возможных значений для столбца. Ограничение целостности CHECK задает диапазон возможных значений для столбца.
Д.з Язык С++ - занятие 31. Задача 1: 1/1 + 1/3 + 1/5 … #include using namespace std; int main() { int n; cin >> n; double sum = 0;// Сумма for.
ОСНОВНЫЕ ЭЛЕМЕНТЫ БЛОК-СХЕМ Основные геометрические фигуры языка блок-схем, широко используемого для описания небольших алгоритмов.
ОСНОВНЫЕ ЭЛЕМЕНТЫ БЛОК-СХЕМ Основные геометрические фигуры языка блок-схем, широко используемого для описания небольших алгоритмов.
Транксрипт:

Работа с динамической очередью. Dünaamiline järjekord.

Объявление очереди. Järjekorra deklareerimine. struct Solm //järjekorra üks sõlm { info; //andmed Solm *next; //järgmise elementi aadress }; Solm *Esim, *Viim; //esimese ja viimase //elemendi viidad

Очередь (FIFO first_in_first_out) – это линейная структура, в которой разрешается добавлять элементы в начало и удалять с конца. Järjekord (FIFO first_in_first_out) on lineaarne seotud nimistu, mille jaoks võib lisada element rea lõppu ning kustutada rea algusest й элемент esimene Последний viimane

Создание пустой очереди. Tühja järjekorra koostamine. Esim=Viim=NULL; EsimViim

Добавление первого элемента. Esimese elemendi lisamine. p=new Solm; p->info=andmed; p->next=NULL; Esim=Viim=p; P andmed NULL Esim Viim

Добавление очередного элемента в очередь. Järgmise elemendi lisamine. Viim->next=p; Viim=p; p=new Solm; p->info=andmed; p->next=NULL; P andmed NULL EsimViim

Удаление элемента из очереди. Elemendi kustutamine järjekorrast. p=Esim; NULL EsimViim Esim=p->next; delete p; p

Описание программы, реализующей работу с очередью. Programmi kirjeldamine. Функции (funktsioonid): -Проверка пустоты очереди (kas järjekord on tühi) -Добавление элемента (lisamine) -Удаление элемента (eemaldamine) -Удаление всех элементов из очереди (kõikide elementide eemaldamine) -Поиск элемента в очереди (elemendi otsimine) -Показать на экране значение элемента в начале очереди (esimese elemendi väljastamine ekraanile) -Показать на экране значения всех элементов в очереди (kõikide elementide väljastamine ekraanile) ülesanne

Проверка пустоты очереди Kas järjekord on tühi Функция должна возвращать true, если очередь пустая, и false, если очередь имеет хотя бы один элемент. Kui järjekord on tühi, funktsioon tagastab true. Kui järjekorras on elemendid, funktsioon tagastab false.

Добавление элемента. Lisamine. void QInsert( ); Функция добавляет новый в конец очереди. Funktsioon kirjutab oma parameetri järjekorra lõppu.

Удаление элемента. Eemaldamine. QDelete(); Функция удаляет элемент из очереди и возвращает значение этого элемента главной функции main(). Funktsioon eemaldab elemendi järjekorrast ja tagastab elemendi väärtust peafunktsioonile main().

Удаление всех элементов из очереди. Kõikide elementide eemaldamine. void ClearQueue(); В цикле пока очередь не опустеет удаляются все её элементы и указатели на начало и конец получают значение NULL. Tsüklis eemaldatakse kõik elemendid kuni järjekorras on elemendid. Kui järjekorras ei ole elemendi Esim = Viim = NULL.

Поиск элемента в очереди. Elemendi otsimine. int QFind( ); В цикле просматривается вся очередь на совпадение элементов с искомым значением. Если элемент найден, функция возвращает порядковый номер элемента. Если элемент не найден, функция возвращает 0 (нуль). Tsüklis vaadatakse järjekord ja otsitakse element. Kui element on järjekorras, funktsioon tagastab elemendi number. Kui element puudub, funktsioon tagastab 0 (nulli).

Показать на экране значение элемента в начале очереди. Esimese elemendi väljastamine ekraanile. QFront (); Функция возвращает значение первого элемента в очереди. Funktsioon tagastab esimese elemendi väärtust.

Показать на экране значения всех элементов в очереди. Kõikide elementide väljastamine ekraanile. void QPrint(); Функция выводит на экран все элементы очереди. Funktsioon väljastab järjekorra elementid.

Очереди приоритетов. Prioriteedi järjekorrad. Очереди приоритетов находят применение в операционной системе, которая записывает процессы в список, а затем выполняет их в порядке приоритетов. Järjekord kasutatakse operatsiooni süsteemis. OS kirjutab protsessid nimistusse ja väljakutsub neid järjekorra prioriteedi korras. Очередь – это структура данных, которая обеспечивает FIFO-порядок элементов. Järjekord on andmete struktuur, mis annab FIFO elemendite kord. Очередь удаляет самый старый элемент из списка. Järjekord kustutab kõige vanema elementi. Приложения часто требуют модифицированной версии памяти для очереди, в которой из списка удаляется элемент с высшим приоритетом. Programmid tihti nõuavad, et järjekorrast kustutakse kõrgema kvaliteetiga element.

Очереди приоритетов (продолжение). Prioriteedi järjekorrad. Задача 1 20 Задача 2 0 Задача 3 40 Задача 4 30 Задача 5 10 Порядок хранения задач. Ülesannete säilitamise kord. Порядок выполнения задач. Ülesannete väljakutsumise kord. Задача 2Задача 5Задача 1Задача 4Задача 3 В очереди могут находиться задачи с одним и тем же уровнем приоритета. В этом случае они должны вставать в очередь. Обслуживание таких задач должно выполняться в порядке их поступления. Kui järjekorras on ülesanned ühesugusega prioriteetidega, nad peavad järjekorras olema.

Заданиe. Ülesanne. 1. Составить программу, реализующую работу с очередью (см. Слайд 8) Koostada programmi, mis realiseerib töö järjekorraga (vaata Slaid 8)