Помощь - Поиск - Пользователи - Календарь
Полная версия: Стек и указатели....
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
markos
Помогите, плиз!!!
Совсем запутался в этих укзателях...
Препод послезавтра уходит в отпуск и прощай зачёт!!!
Задача звучит так: Ввести стек значений, найти минимальное и максимальное и поменять их местами.
volvo
Стек НЕ предназначен для поиска в нем элементов !!! Над стеком выполняются только 3 операции: Push(занести элемент в стек), Pop(извлечь элемент из стека) и Top(скопировать значение с верхушки стека без извлечения)... Сможешь с помощью этих операций найти минимальное и максимальное значение и еще поменять их местами? Сомневаюсь...

Так что придется уточнить, стек или все-таки список...
markos
Таки да.
Наверное список...
volvo
FAQ: Списки
Здесь есть модуль для работы со списками, оттуда можешь взять описание и заполнение списка. Вот тебе пример, как найти минимальный элемент:
Function FindMin(head: point): point;
Var min: Integer;
begin
FindMin := nil; min := maxInt;
While head <> nil Do Begin
If head^.number < min Then Begin
min := head^.number; FindMin := head
End;
head := head^.next
End;
end;

Результат работы этой функции - указатель на минимальный элемент в списке. По аналогии ищешь указатель на максимальный элемент и меняешь их местами.
markos
А что такое maxInt?
volvo
F1 нажми и узнаешь...
markos
ОКsmile.gif
Спасибо!
Выручил! :D
FreeMan
Стек тоже массив :D
volvo
Цитата(FreeMan @ 2.07.05 13:12)
Стек тоже массив :D

То, что он реализован на массиве (у некоторых ;) ) еще не значит, что он и есть массив... В любом случае, задание - не на массивы, а на указатели... Наверное, мою фразу из 2-го поста лучше переформулировать так:
Цитата
Над стеком должны выполняться только 3 операции:
, далее - по тексту
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.