Списки. Поменять местами максимальный и минимальный элементы списка. - Pascal
Формулировка задачи:
Написать программу, которая меняет максимальный и минимальный элементы списка.
Ребята помогите плиз сессия поджимает, как осуществить ввод списка.
Тут нашел процедуры односвязный список для мин. макс.
Очень нужна ваша помощь
Решение задачи: «Списки. Поменять местами максимальный и минимальный элементы списка.»
textual
Листинг программы
uses crt; type PNode=^Node; Node=record data:integer; next:PNode; end; var Head:PNode; i:integer; procedure AddToSpis(var Head1:PNode;k:integer); var tmp:PNode; begin if Head1=nil then begin New(Head1); tmp:=Head1; end else begin tmp:=Head1; while tmp^.next <> nil do tmp:=tmp^.next; New(tmp^.next); tmp:=tmp^.next; end; tmp^.next:=nil; tmp^.data:=k; end; procedure Print(Head1:PNode); begin while Head1 <> nil do begin write(Head1^.data:4); Head1:=Head1^.next; end; end; procedure FreeSpis(var Head1:PNode); var tmp:PNode; begin while Head1 <> nil do begin tmp:=Head1; Head1:=Head1^.next; Dispose(tmp); end; end; procedure SearchAndChange(var Head1:PNode); var min,max,tmp,tmp1:PNode; k:integer; begin min:=Head1; max:=Head1; tmp1:=Head1; while tmp1^.next <> nil do begin tmp:=tmp1^.next; if tmp^.data > max^.data then max:=tmp; if tmp^.data < min^.data then min:=tmp; tmp1:=tmp1^.next; end; k:=min^.data; min^.data:=max^.data; max^.data:=k; end; begin Head:=nil; writeln('Ввод чисел, признак окончания число 99'); read(i); repeat AddToSpis(Head,i); read(i); until i=99; ClrScr; writeln('Сформированный список'); Print(Head); writeln; writeln('Изменнёный список'); SearchAndChange(Head); Print(Head); FreeSpis(Head); end.
Объяснение кода листинга программы
- Создается тип данных PNode, который представляет собой указатель на структуру Node.
- Создается переменная Head, которая является указателем на начало списка.
- Создается процедура AddToSpis, которая добавляет элемент в список. Если указатель на начало списка равен нулю, то создается новый элемент. В противном случае, происходит поиск конца списка и добавление нового элемента перед ним.
- Создается процедура Print, которая выводит элементы списка на экран.
- Создается процедура FreeSpis, которая освобождает память, выделенную под элементы списка.
- Создается процедура SearchAndChange, которая выполняет поиск максимального и минимального элементов списка и меняет их местами.
- В основной программе происходит ввод чисел, после чего создается список. Затем происходит поиск максимального и минимального элементов и их обмен местами. Наконец, выводится измененный список и освобождается память.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д