Написать рекурсивную и нерекурсивную процедуры проверки наличия в списке заданного числа - Pascal

Узнай цену своей работы

Формулировка задачи:

Условие:Написать рекурсивную и нерекурсивную процедуры проверки наличия в списке заданного числа.

Решение задачи: «Написать рекурсивную и нерекурсивную процедуры проверки наличия в списке заданного числа»

textual
Листинг программы
  1. procedure SearchNum(pFirst:pNode; const aInf:integer;var bol:boolean);
  2. begin
  3.   bol:=false;
  4.   while pFirst<>nil do begin
  5.       If pFirst^.Inf=aInf then begin
  6.             bol:=true;
  7.             exit;
  8.       end;
  9.       pFirst:=pFirst^.Next;
  10.   end;
  11. end;
  12. procedure SearchNum1(pFirst:pNode; const aInf:integer;var bol:boolean);
  13. begin
  14.    If pFirst=nil then bol:=false
  15.    else If pFirst^.Inf=aInf then bol:=true
  16.    else SearchNum1(pFirst^.Next,aInf,bol);
  17. end;

Объяснение кода листинга программы

  1. В обоих процедурах присутствует переменная bol, которая изначально устанавливается в значение false. Она будет использоваться для отслеживания наличия заданного числа в списке.
  2. В первой процедуре SearchNum используется рекурсия. Она начинается с проверки, является ли первый элемент списка (переменная pFirst) равным нулю. Если это так, то переменная bol устанавливается в значение true, так как список пуст и заданное число не найдено. Затем выполняется цикл while, который продолжается до тех пор, пока pFirst не станет равным нулю. Внутри цикла происходит проверка, равен ли элемент списка с инфом заданного числа. Если это так, то переменная bol устанавливается в значение true, и цикл завершается. Если же условие не выполняется, то pFirst обновляется, чтобы указать на следующий элемент списка, и цикл продолжается.
  3. Во второй процедуре SearchNum1 используется нерекурсивный подход. Она начинается с проверки, является ли первый элемент списка (переменная pFirst) равным нулю. Если это так, то переменная bol устанавливается в значение false, так как список пуст и заданное число не найдено. Затем выполняется цикл while, который продолжается до тех пор, пока pFirst не станет равным нулю. Внутри цикла происходит проверка, равен ли элемент списка с инфом заданного числа. Если это так, то переменная bol устанавливается в значение true, и цикл завершается. Если же условие не выполняется, то pFirst обновляется, чтобы указать на следующий элемент списка, и цикл продолжается. Если же цикл завершается и переменная bol остается равной false, то это означает, что заданное число не найдено в списке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы