Помощь - Поиск - Пользователи - Календарь
Полная версия: Очередь. Линейные структуры данных
Форум «Всё о Паскале» > 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;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.