Помощь - Поиск - Пользователи - Календарь
Полная версия: Очередь. Линейные структуры данных
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ПухАчОк
Люди добрые!!! Помогите!!!!
Мне нужно написать процедуру, которая удаляет из непустого списка L за каждым вхождением элемента E один элемент, если такой есть и он отличен от E. Список L-- таблица(поля:номер,ФИО,год рождения,пол,семейное состояние,количество детей,оклад), элементы-- строки таблицы.
даю описание таблицы:

Type
 rabotnik=record
  number:integer;
  FIO:string[15];
  godroj:integer;
  pol:char;
  cem:string[15];
  koldet:integer;
  oklad:integer;
  end;
 rab=file of rabotnik;
 Queryptr=^query;
 query=record
  inf:rabotnik;
  next:Queryptr;
  end;

Var
 f:rab;
 left,rigth,newe,temp:Queryptr;


Напишите,плиз, эту процеДУРУ!!!!! Оч надо, а то в универе выговор сделают!!!!!!!! mega_chok.gif unsure.gif
2. Все тексты программ должны помещаться в теги [ CODE ] [ /CODE ].
APAL
virt
 function eq(z1,z2 : rabotnik) : boolean;
begin
...............//сам допиши
end;

procedure make_del(var queue : Queryptr);
var q1, q2 ,q3 : Queryptr;
   i, n : integer;
begin
   n := 0;
   q1 := queue;
   while q1 <> nil do
      begin
         n := n + 1;
         q1 := q1^.next;
      end;
   q1 := queue;
   i := 0;
   while (i < n) and (q1 <> nil) do
      begin
         i := i + 1;
         q2 := q1;
         q3 := nil;
         while (q2 <> nil) and eq (q2,q1) do begin q3 := q2;q2 := q2^.next;end;
         if q2 = nil then
            begin
               queue := q1;
               q1 := nil;
            end else
               begin
                  if q3 = nil then
                  begin
                     q3 := q1;
                     q1 := q1^.next;
                     dispose(q3);
                  end else
                     begin
                        q3^.next := q2^.next;
                        dispose(q2);
                     end;
               end;
      end;
end;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.