Если список формируется по принципу «очереди», то звенья в списке следуют в порядке их поступления.
Задача. Написать программу, включающую в себя подпрограммы формирования линейного списка по принципу «очереди», поиска в списке L звена с первым вхождением элемента Е, если такой есть, вывода списка на экран. Значения информационных полей и искомый элемент Е – значения типа Integer.Сформированный по принципу «очереди» список
Program Primer2;Uses Crt;TypeSpisok = ^Zveno;Zveno = RecordElem : Integer;Next : Spisok;End;VarL : Spisok;E : Integer;Procedure Form (Var L1 : Spisok);VarSym : Char;Pr, X : Spisok;BeginL1:= Nil;RepeatNew(X);If L1 = NilThen L1:=XElse Pr^.Next:=X;Writeln(‘Введите элемент звена’);Readln(X^.Elem);Pr:=X;Write(‘Продолжить (Y/N)’);Readln(Sym);Until (Sym=’N’) or (Sym=’n’);X^.Next:=Nil;End;Procedure Search(Var L1 : Spisok; E1 : Integer);VarFlag : Boolean;BeginFlag:=False;While (L1 <> Nil) and (not Flag)Do If L2^.Elem = EThen Flag:=TrueElse L1:=L1^.Next;If FlagThen Writeln(‘Е=’,E,’ найден’);Else Writeln(‘Е=’,E,’ не найден’);End;Procedure Wywod(L1 : Spisok);BeginWhile L1 <> NilDo BeginWrite(L^.Elem,‘ ’);L1:=L1^.Next;End;Writeln;End;BeginClrscr;Form(L);Writeln(‘Вывод исходного списка’);Wywod(L);Writeln(‘Введите элемент Е для поиска’);Readln(E);Search(L,E);Readkey;End.
{тип –указатель на тип-запись}{тип - запись}{информационное поле записи}{указатель на следующее звено списка}{указатель}{удаляемый элемент списка}{процедура формирования списка}{по принципу «очереди»}{ответ о продолжении формирования списка}{рабочие переменные}{см. пояснения к программе ниже}{заем памяти из кучи}{конец процедуры Form}{процедура поиска элемента Е}{флаг того, что Е был найден и удален}{элемент Е еще не найден}{пока не конец очереди и не найден элемент Е}{если текущий элемент равен Е}{то установка флага}{иначе переход к следующему элементу}{если Е был найден}{то вывод «Элемент Е найден»}{иначе вывод «Элемент Е не найден»}{конец процедуры Search}{процедура вывода списка на экран}{конец процедуры вывода списка}{начало основной программы}{очистка экрана}{формирование списка (очередь)}{вывод исходного списка на экран}{ввод элемента Е для поиска}{поиск элемента Е, если он есть}{конец программы}