academycoffee243
?>

Дайте ссылку на ответы информатика 9 класс контрольные работы босова

Информатика

Ответы

kartyshkinaaa
// Использование указателей для создания односвязного списка
// Сделано на базе демонстрационного примера PascalABC.Net
//
// PascalABC.NET 3.2, сборка 1325 от 19.10.2016
type
  PNode=^TNode;
  TNode=record
    data:integer;
    next:PNode;
  end;

function NewNode(d:integer;n:PNode):PNode;
begin
  New(Result);
  Result^.data:=d;
  Result^.next:=n;
end;

procedure WriteNode(a:PNode);
// Вывод односвязного списка
begin
  Writeln('Содержимое односвязного списка: ');
  var p:=a;
  while p<>nil do begin
    Write(p^.data,' ');
    p:=p^.next;
    end;
  Writeln
end;

function SeekNode(k:integer;a:PNode):PNode;
// Поиск элемента со значением k в списке
begin
  var p:=a;
  Result:=Nil;
  while p<>nil do begin
    if p^.data=k then begin Result:=p; break end;
    p:=p^.next
    end
end;

function PredNode(a,f:PNode):PNode;
// Поиск предшественника f среди a
begin
  var p:=a;
  while p^.next<>f do p:=p^.next;
  Result:=p
end;

procedure Clear(a:pNode);
// Разрушение односвязного списка
begin
  var p:=a;
  while p<>nil do begin
    var p1:=p;
    p:=p^.next;
    Dispose(p1); // Память обязательно возвращать
    end
end;

var
  first,found,father,grandfather,greatgrandfather:PNode;
 
begin
  Randomize;
  first:=nil;
  for var i:=1 to 10 do
    first:=NewNode(Random(100),first);
  WriteNode(first); // первоначальное состояние списка
  var k:=ReadInteger('Введите число для поиска в списке');
  found:=SeekNode(k,first);
  if found<>nil then begin
    father:=PredNode(first,found); // отец
    grandfather:=PredNode(first,father); // дед
    greatgrandfather:=PredNode(first,grandfather); // прадед
    greatgrandfather^.next:=father;
    Writeln('Элемент ',grandfather^.data, ' удален');
    Dispose(grandfather);
    WriteNode(first);
    k:=ReadInteger('Введите число для вставки');
    father^.next:=NewNode(k,found);
    WriteNode(first);
    end
  else Writeln('Такого числа в списке нет');
  Clear(first)
end.  

Пример
Содержимое односвязного списка:
11 75 44 86 88 83 92 18 4 23
Введите число для поиска в списке 88
Элемент 44 удален
Содержимое односвязного списка:
11 75 86 88 83 92 18 4 23
Введите число для вставки 40
Содержимое односвязного списка:
11 75 86 40 88 83 92 18 4 23

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дайте ссылку на ответы информатика 9 класс контрольные работы босова
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

bei07
Мирзоев Денис
Екатерина655
Larya
vladimir72tatarkov1317
Щербаков33
Алёна Геннадьевна98
mado191065
Никитина580
Макаров1887
laktionova-natal
tatianaesipenko
mv7095
ASRodichev
tatianaesipenko