Работа с динамической памятью и указателями в системе Turbo Pascal. Мирецкий И.Ю - 14 стр.

UptoLike

Составители: 

Для построения модели необходимо уметь
1) создавать элемент списка;
2) вносить элемент в список (в начало, в середину и в конец очереди);
3) удалять элемент из списка (из начала, из середины и из конца очереди).
Тело программы включает создание элемента типа patient и управление очередью.
program queue;
uses crt;
{для описания пациента и организации
списка}
{вводим следующий тип}
type
s_t_r = string[40];
elem = ^patient;
patient = record
{сведения о пациенте}
fio : s_t_r; {Ф.И.О.}
sex : s_t_r; {пол}
addr: s_t_r; {адрес}
age : integer; {возраст}
next: elem {поле, указывающее на следующий элемент списка}
end;
var
p : pointer;
first : elem; {указатель на первый элемент списка}
n : elem; {указатель на очередной элемент списка}
o : char; {управление очередью:}
{o='i' - вставить элемент;}
{o='d' - удалить элемент;}
{o='s' - показать очередь;}
{o='e' - завершить работу}
name : s_t_r;
{функция pospat определяет
позицию элемента,}
first
карточка
карточка
ссылка
элемент 1 ссылка ...
элемент 2
карточка
...
ссылка nil
последний элемент
Рис. 7. Однонаправленный список
      first



     карточка

                                карточка
    ссылка

    элемент 1                     ссылка                 ...

                                элемент 2

                                                                            карточка
                                                               ...

                                                                        ссылка             nil

                                                                     последний элемент
                                  Рис. 7. Однонаправленный список

   Для построения модели необходимо уметь
   1) создавать элемент списка;
   2) вносить элемент в список (в начало, в середину и в конец очереди);
   3) удалять элемент из списка (из начала, из середины и из конца очереди).
   Тело программы включает создание элемента типа patient и управление очередью.

program queue;

   uses crt;
                                                     {для описания пациента и организации списка}
                                                     {вводим следующий тип}
   type
      s_t_r = string[40];
      elem = ^patient;
      patient = record
                                                    {сведения о пациенте}
                            fio : s_t_r; {Ф.И.О.}
                            sex : s_t_r;            {пол}
                            addr: s_t_r;            {адрес}
                            age : integer;          {возраст}

                           next: elem               {поле, указывающее на следующий элемент списка}
                        end;

   var
      p : pointer;
      first : elem; {указатель на первый элемент списка}
      n : elem; {указатель на очередной элемент списка}
      o : char; {управление очередью:}
                                                   {o='i' - вставить элемент;}
                                                   {o='d' - удалить элемент;}
                                                   {o='s' - показать очередь;}
                                                   {o='e' - завершить работу}
      name : s_t_r;

                                                      {функция pospat определяет позицию элемента,}