Очередь – такая структура данных, при которой изъятие компонент происходит из начала цепочки, а запись – в конец цепочки.
В этом случае вводят два указателя: один на начало очереди, другой – на ее конец.
Описание типа для очереди:
type ptr=^rec;
rec=record
str:string;
next:ptr;
end;
var r,q:ptr; {указатели на начало и конец очереди}
Добавление элемента в очередь:
Procedure Add(var r,q:ptr);var cur : ptr;{текущий указатель} x:какой-то тип;спокойноbegin Write ('Dobavit element: '); Readln (x); Cur:=nil; New (cur); cur^.str:=x; cur^.next:=Nil; If r = nil then r:=cur else q^.next:=cur; q:=cur; end; Удаление первого элемента из очереди:
Procedure Delete (var r:ptr);Var cur:ptr; begin
if r=nil then writeln ('Ochered not create') else if Sizeoflist (r)=1 then
begin
cur:=r;
dispose (cur);
r:=nil;
end
else
begin
cur:=r;
r:=cur^.next;
dispose (cur);
end;
end.
Создание и использование таблиц.
Таблицы описываются так же, как и списки, только в записи может присутствовать несколько полей.
Виды таблиц:
1.Таблицы – списки
Typep_tabl=^elem;
elem=record
next:p_tabl;
k:integer;
inf: …; {может быть любого типа, в том числе и указателем}
end;
Varp: p_tabl;
2.Таблицы-массивы
Typeinform=record
…
End;
Point=^inform;
Str_tabl=record
K:byte;
P:point;
End;
Mas=array [1..n] of str_tabl;
Vartabl:mas;