Скачать презентацию ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ Очередь Очередь 1 Скачать презентацию ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ Очередь Очередь 1

4_Динамические структуры данных_очереди.ppt

  • Количество слайдов: 9

ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ

Очередь Очередь

Очередь 1 2 3 4 5 Очередь –упорядоченный набор элементов, в котором извлечение элементов Очередь 1 2 3 4 5 Очередь –упорядоченный набор элементов, в котором извлечение элементов происходит с одного его конца, а добавление новых элементов с другого.

Очередь Особенности очереди 1. 2. 3. Очередь – динамическая структура – со временем меняется Очередь Особенности очереди 1. 2. 3. Очередь – динамическая структура – со временем меняется длина и набор элементов. Для реализации используют линейный список Принцип обслуживания FIFO (first in – first out)

Очередь Особенности очереди Доступны две позиции: начало – для извлечения элементов, конец – для Очередь Особенности очереди Доступны две позиции: начало – для извлечения элементов, конец – для занесения новых элементов. Для работы, надо описать две переменные: Var x 1, x 2: EXO; X 1 – начало очереди (для вывода из очереди) X 2 – конец очереди (для добавления в очередь) x 2 x 1

Очередь Операции с очередью. 1. Занесение элемента. Аналогично вставке элемента в конец списка. Процедура Очередь Операции с очередью. 1. Занесение элемента. Аналогично вставке элемента в конец списка. Процедура записи в очередь Procedure Write. O (var x 1, x 2: EXO; c: Integer); Var u: EXO; Begin New(u); u^. Data: =c; X^. Next: =NIL; If x 1=NIL then x 1: =u {если очередь пуста} Else x 2^. next: =u; {заносим элемент в конец списка} x 2: =u; End;

Очередь Операции с очередью. 1. Занесение элемента. Основная программа Begin X 1: =NIL; X Очередь Операции с очередью. 1. Занесение элемента. Основная программа Begin X 1: =NIL; X 2: =NIL; Write. Ln(‘Введите элементы очереди. Окончание ввода – 0’); Read (Digit); While Digit <> 0 Do Begin Write. O (x 1, x 2, Digit); Read(digit); End.

Очередь Операции с очередью. 2. Извлечение элемента. Удаление элемента из начала списка. Извлекать из Очередь Операции с очередью. 2. Извлечение элемента. Удаление элемента из начала списка. Извлекать из пустой очереди нельзя, нужна логическая функция проверки не пуста ли очередь. Procedure Read. O(Var x 1, x 2: EXO; Var c: integer); Var u: EXO; Function Nul (x 1: EXO): Boolean; Begin Nul: =(x 1=Nil); End; Begin If Nul(x 1) Then Writeln (‘Очередь пуста’) else begin C: =x 1^. Data; U: =x 1; X 1: =x 1^. Next; Dispose(u); end; End;

Очередь Задачи 1. 2. За один просмотр файла f, элементами которого являются действительные числа, Очередь Задачи 1. 2. За один просмотр файла f, элементами которого являются действительные числа, и без использования дополнительных файлов, напечатать его элементы так: - сначала все числа, меньшие заданного a, - затем все числа из отрезка [a, b], - и все остальные сохраняя их взаимный порядок в каждой из групп чисел. (** использовать две очереди) Содержимое тестового файла f, разделенного на строки, переписать в текстовый файл g, перенося при этом, в конец каждой строки все входящие в него цифры, с сохранением взаимного исходного порядка.