Динамические структуры данных - 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;

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

  1. В этом коде объявляется динамический список с двумя указателями на начало и конец списка (pBegin и pEnd).
  2. В процедуре Add создается новый элемент списка (p), в который записывается значение Item.
  3. Если список пуст, то новый элемент становится началом и концом списка.
  4. Если список не пуст, то ищется место для нового элемента. Если Item больше или равно нулю, то новый элемент добавляется в начало списка. Если Item меньше нуля, то новый элемент добавляется в конец списка.
  5. Для связывания элементов списка используются указатели prev и next.

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


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

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

12   голосов , оценка 3.917 из 5
Похожие ответы