
26.02.2010, 12:30
|
 |
Местный
|
|
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
|
|
Код:
program Spisok;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
Link = ^Zveno;
Zveno = record
number: integer;
inf: Integer;
sled: Link;
end;
function NewElem(number, inf: integer): Link;
begin
New(Result);
Result^.number := number;
Result^.inf := inf;
Result^.sled := nil;
end;
function RopFirst(var Elem: Link): Link;
begin
Result := Elem;
if Elem <> nil then
Elem := Elem^.sled;
end;
var
Beg, Elem, T, T2: Link;
X: integer;
i, n: integer;
begin
Randomize;
write('Vvedi dlinnu spiska : ');
readln(n);
Beg := NewElem(1, random(10));
Elem := Beg;
for I := 2 to n do
begin
Elem^.sled := NewElem(i, random(10));
Elem := Elem^.sled;
end;
Elem := Beg; {Назначаем начальный узел}
while Elem <> nil do
begin
write('[', Elem^.number, '] ', Elem^.inf, ' --> ');
Elem := Elem^.sled;
end;
writeln;
// удаление < 5
// удаление первых
while (Beg <> nil) and (Beg^.inf < 5) do
Dispose(RopFirst(Beg));
// Beg или nil или содержит >= 5
if Beg <> nil then
begin
Elem := Beg; {Назначаем начальный узел}
while Elem^.sled <> nil do
begin
if Elem^.sled^.inf < 5 then
Dispose(RopFirst(Elem^.sled))
else
Elem := Elem^.sled;
end;
end;
readln;
Elem := Beg; {Назначаем начальный узел}
while Elem <> nil do
begin
write('[', Elem^.number, '] ', Elem^.inf, ' --> ');
Elem := Elem^.sled;
end;
writeln;
readln;
end.
|