Динамические структуры данных - Pascal (86671)
Формулировка задачи:
Даны две очереди целых чисел. Создать дек из элементов очередей следующим образом: записывать в начало дека все отрицательные элементы, в конец – все положительные. Вывести очередь на экран.
Решение задачи: «Динамические структуры данных»
textual
Листинг программы
type PTwoWayList=^TTwoWayList; TTwoWayList=record data:integer; prev:PTwoWayList; next:PTwoWayList; end; procedure Add(const Item:integer; var pBegin,pEnd:PTwoWayList); var p:PTwoWayList; begin New(p); p^.data:=Item; if pBegin=nil then begin p^.prev:=nil; p^.next:=nil; pBegin:=p; pEnd:=p; end else begin if Item>=0 then begin pBegin^.prev:=p; p^.prev:=nil; p^.next:=pBegin; pBegin:=p; end else begin pEnd^.next:=p; p^.next:=nil; p^.prev:=pEnd; pEnd:=p; end; end; end;
Объяснение кода листинга программы
- В этом коде объявляется динамический список с двумя указателями на начало и конец списка (
pBegin
иpEnd
). - В процедуре
Add
создается новый элемент списка (p
), в который записывается значениеItem
. - Если список пуст, то новый элемент становится началом и концом списка.
- Если список не пуст, то ищется место для нового элемента. Если
Item
больше или равно нулю, то новый элемент добавляется в начало списка. ЕслиItem
меньше нуля, то новый элемент добавляется в конец списка. - Для связывания элементов списка используются указатели
prev
иnext
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д