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

0 голосов
49 просмотров

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


Информатика (35 баллов) | 49 просмотров
0

это с

0

только делать нужно с целыми числами

0

символ идет как числа препод сказал

0

ну сделайте плиз с числами

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1325 от 19.10.2016
begin
  var L:=new List;
  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('Искомый элемент в списке не найден')<br>  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]
(150k баллов)