Вставить в список L новый элемент F за каждым вхождением элемента E - Turbo Pascal
Формулировка задачи:
Здравствуйте, выручите студента недоучку =))) работу надо сдать уже завтра. Задача стоит такая
Все работает правильно за одним только исключением, в этом исходнике задаешь количество элементов, которые она подбирает случайным образом, мне нужно сделать так, чтобы я мог задать эти элементы. Помогите подправить, я сам уже пытался-пытался, надо было все-таки на лекции ходить и букварь почитать))))))))))) Заранее благодарю и буду очень признателен ))
Описать процедуру или функцию, которая вставляет в список L новый элемент F за каждым вхождением элемента E
Люди помогите, завтра работу надо уже сдать...
Решение задачи: «Вставить в список L новый элемент F за каждым вхождением элемента E»
textual
Листинг программы
uses crt; type {список целых чисел} PSpisok = ^TSpisok; TSpisok = record Inf: integer; {целое число} Next: PSpisok; {указатель на следующий элемент} end; var h: PSpisok; {первый элемент списка} L: PSpisok; {список} x: PSpisok; {последний элемент списка} t: PSpisok; {используется при добавлении элемента в список} i,n,e,f:integer; begin clrscr; write('Введите кол-во элементов списка, N='); readln(n); randomize; {создаем первый элемент списка} New(L); {Выделяем память } L^.Next:=nil; {так как второго элемента нет, указатель на слудующий элемент делаем пустым} writeln('vvedite zna4enie elementu'); readln(L^.inf); {L^.Inf:=random(50)-25; {присваиваем случайное число}} h:=L;{запоминаем первый элемент} x:=L;{запоминаем последний элемент} {создаем и заполняем следующие жлементы списка( до N)} for i:=2 to n do begin New(L^.Next); {выделяем память для следующего элемента списка} L:=L^.Next; {переходим к следущему элементу списка} {заполняем} L^.Next:=nil; L^.Inf:=random(50)-25; x:=L; {запоминаем последний элемент списка} end; {выводим элементы списка на экран} L:=h; {переходим к первому элементу списка} while L^.Next<>nil do {пока указатель на следующий элемент не равен 0, т.е. следующий элемент не существует } begin write(L^.Inf:4); {выводим значение} L:=L^.Next; {перемещаемся к следующему элементу} end; write(L^.Inf:4); {выводим последний элемент списка} writeln; write('E='); readln(e); {ввод е - целое число} write('F='); readln(f); {ввод f - целое число} L:=h; {переходим к первому элементу списка} while L^.Next<>nil do {перемещаемся до предпоследнего элемента списка} begin if (L^.Inf = e) {текущий элемент равен е и последующий элемент не равен е} then begin t:=L^.Next; {запоминаем указатель на следующий элемент} New(L^.Next); {выделяем память для нового элемента списка} L:=L^.Next; {переходим к следущему (новому) элементу списка} L^.Inf:=f; L^.Next:=t; {связываем список} end; L:=L^.Next; {переходим к следующему элементу списка} end; {дополнительно проверяем последний элемент списка, если он равен е, то добавляем элемент f в конец списка} if (L^.Inf = e) {текущий элемент равен е} then begin New(L^.Next); {выделяем память для нового элемента списка} L:=L^.Next; {переходим к следущему (новому) элементу списка} L^.Inf:=f; L^.Next:=nil; {связываем список} end; {выводим элементы списка на экран} L:=h; while L^.Next<>nil do begin write(L^.Inf:4); L:=L^.Next; end; write(L^.Inf:4); {освобождаем память} Dispose(L); readln; end.
Объяснение кода листинга программы
Этот код написан на Turbo Pascal и выполняет следующие действия:
- Запрашивает у пользователя количество элементов, которые должны быть в списке (N).
- Создает переменные h, x, t, i, n, e, f, которые будут использоваться в процессе работы со списком.
- Выделяет память для первого элемента списка и устанавливает его свойства следующим образом:
- Inf: задается случайное целое число от 0 до 50.
- Next: устанавливается в nil, так как после первого элемента в списке нет следующего.
- Заполняет память для остальных элементов списка, используя цикл for.
- Выводит элементы списка на экран, начиная с первого элемента.
- Проверяет каждый элемент списка на равенство заданному значению (e). Если элемент равен e, то:
- Создает новый элемент, который будет добавлен в конец списка.
- Устанавливает указатель на следующий элемент в новом созданном элементе.
- Связывает новый элемент со списком.
- Освобождает память, выделенную под элементы списка.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д