TURBO PASCAL |
Новости
|
Работа с очередьюДля создания очереди и работы с ней необходимо иметь как минимум два указателя' • на начало очереди (возьмем идентификатор BegQ), • на конец очереди (возьмем идентификатор EndQ) Кроме того, для освобождения памяти удаляемых элементов требуется дополнительный временный указатель (возьмем идентификатор Р) Дополнительный -указатель также часто используется р. других ситуациях для удобства работы с очередью Создание очереди ! Исходное состояние Удаление элемента очереди 1. Исходное состояние: program d_point2; uses crt; type tptr=Atclem; ^ tclem=record inf:real; link : tptr end; var begq.endq : tptr; value: real; i : byte; procedure addel (val: real); var P : tptr; begin new(p); pA.inf:=val; В качестве примера приведем программу создания и удаления стека из десяти элементов. В ней для работы со стеком используются две процедуры: 1)процедура push, которая в зависимости от состояния стека создает первый или добавляет очередной элемент; 2)процедура pop, которая извлекает информацию из вершины стека с последующим освобождением ее памяти. program d_point3; uses crt; type tptr=- telem; telem=record inf: real; link: tptr end; var top : tptr; value: real; i : byte; procedure push(val: real): var p:tptr; begin new(p); pA.inf:=val; pA.link:=top; top-p end; procedure pop(var val: real); var P : tptr; begin val:=topA.inf; p:=top; top:=pA.link; dispose(p) end; begin (основная программа} clrscr: {Начальная установка указателей} top:=-nil; {Создание стека из 10 элементов [ for i:=l to 10 do push(i); {Удаление стека с распечаткой значений его элементов} while top о nil do begin pop( value), writeln('valuc-,value :5 :2) end end. Результат работы этой программы будет таким:
|
На первую страницу
(с)Все права защищеныПо всем интересующим вопросам прошу писать на электронный адрес |