Билет 13. Вопрос 1. Cтруктурированный тип “очередь”.
Базовые операции работы с очередью. Одним из видов списка является очередь. Очередь – это структура данных, в один конец которой добавляются элементы, а с другого конца изымаются. Принцип работы очереди: “первый пришёл – первый вышел”. Для организации такой структуры используется две переменные: для указания начала и конца очереди. Назовём их соответственно Left и Right . При добавлении элемента в очередь он располагается в памяти в соответствии со значением Right , а значение Right изменяется и указывает на следующее свободное место памяти. Выборка элемента из очереди происходит исходя из значения N , которое изменяется и указывает на следующий элемент очереди. Когда очередь пуста, значение Right равно значению Left . Механизм работы очереди:
Основные операции над очередью: формирование очереди, добавление, удаление, просмотр элементов списка. Для их демонстрации используем следующее описание : Type Ukaz = ^stack; Stack = record Inf: integer; Next: Ukaz End; Var Pp, Top, Kon: Ukaz; Left, Right, NewElement: Ukaz; Value: integer; Организация очереди . Procedure SozdO; Begin Read(Value); If Value = 999 then exit; New(Kon); Kon^.Next:= Nil; Kon^.Inf:= Value; Right:= Kon; Left:= Kon; While true do Begin Read(Value); If Value = 999 then exit; New(Kon); Kon^.Next:= Left; Kon^.Inf:= Value; Left:=Kon End End ; Добавление элементов в очередь. Procedure DobavО; Begin Read(Value); If Value=999 then Exit; New(NewElement); Right^.Next:=NewElement; NewElement^.Next:=Nil; NewElement^.Inf:=Value; Right:=NewElement; End ; Удаление элементов из очереди . Procedure Udal; Begin Left:= Left^.Next End ; Просмотр элементов очереди . Procedure RaspO ; Begin Pp:= Left; While Pp<>Nil do Begin Writeln(Pp^.Inf:3); Pp:= Pp^.Next End End; |