информатика

Используя линейный односвязный список найти введённое с клавиатуры число, удалить число стоящий перед найденным за 1 позицию и вставить число, введённый с клавиатуры, перед найденным .Pascal.

Оставить ответ
1

Ответ №1

// PascalABC.NET 3.2, сборка 1325 от 19.10.2016
begin
  var L:=new List<integer>;
  Writeln('Вводите целые числа, окончание ввода по -777');
  var n:integer;
  repeat
    n:=ReadInteger;
    if n<>-777 then L.Add(n);
  until n=-777;
  Writeln('Исходный список'); Writeln(L);
  n:=ReadInteger('Введите искомое число:');
  var p:=L.FindIndex(k->k=n); // искомый элемент
  if p<0 then Writeln('Искомый элемент в списке не найден')
  else begin
    Writeln('Элемент ',L.Item[p-2],' удален');
    L.RemoveAt(p-2); Writeln(L); // удалили и убедились
    n:=ReadInteger('Введите число для вставки:');
    L.Insert(p-1,n); Writeln(L)
    end
end.

Пример
Вводите целые числа, окончание ввода по -777
1 6 12 73 -15 34 18 0 24 -777
Исходный список
[1,6,12,73,-15,34,18,0,24]
Введите искомое число: 34
Элемент 73 удален
[1,6,12,-15,34,18,0,24]
Введите число для вставки: 1000
[1,6,12,-15,1000,34,18,0,24]

Знаете ответ?