Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Очередь и дек.

Условие задачи (см также 5.2.2)

Создать С1 на основе С2-связногоного списка. Данные взять из файла. Создать еще две(а) С1, в первую(ый) поместить данные удовлетворяющие условию, во вторую(ой) – не удовлетворяющие.

Вывести заданный и созданные С1. Для деков – все данные выводить дважды: в прямом и обратном порядке. Предусмотреть возможность сохранения отчета (что было дано, и что получилось) в текстовый файл.

Условие отбора и структуру информационной части смотрите в задаче 5.2.2

Варианты заданий

С1

С2

Нечетные

1,3,5,7,9,…

Дек

Дву-

Четные

2,4,6,8,10,…

Очередь

Одно-

Пример

Процедуры создания двух новых очередей

С созданием дополнительной очереди

var

ListDN, ListDK: PElem;

ball: byte;

chel: Tinfo;

begin

ListDN:=nil; ListDK:=nil;

FreeList(Res1Nachalo, Res1Konec);

FreeList(Res2Nachalo, Res2Konec);

ball:=UpDown2.Position;

while NachaloQueue<>nil do

begin

chel:=NachaloQueue^.info;

if chel. b > ball then

Dobavit(Res1Nachalo, Res1Konec, chel)

else

Dobavit(Res2Nachalo, Res2Konec, chel);

DelFirst(NachaloQueue, KonecQueue);

Dobavit(ListDN, ListDK, chel);

end;

NachaloQueue:=ListDN;

KonecQueue:=ListDK;

End;

Без создания дополнительной очереди – перекладываем
рассмотренный элемент в конец той же очереди

var

ListCN, ListCK: PElem;

ball: byte;

begin

ball:=UpDown2.Position;

ListCN:=NachaloQueue; ListCK:=KonecQueue;

if NachaloQueue<> nil then

repeat

if ListCN^.info. b > ball then

Dobavit(Res1Nachalo, Res1Konec, ListCN^.info)

НЕ нашли? Не то? Что вы ищете?

else

Dobavit(Res2Nachalo, Res2Konec, ListCN^.info);

Perestavit(ListCN, ListCK);

until ListCN=NachaloQueue;

end;

procedure Perestavit(var ListCN, ListCK: PElem);

begin

if ListCN <> ListCK then

begin

ListCK^.next:=ListCN;

ListCN:=ListCN^.next;

ListCK:=ListCK^.next;

ListCK^.next:=nil;

end;

end;

Информационно-логические структуры:

Очередь

(FIFO - First In First Out)

Данные:

Адрес головы очереди,

Адрес хвоста очереди.

Допустимые операции:

Создать очередь из 1 элемента;

Добавить элемент в хвост очереди;

Удалить элемент из головы очереди;

Проверка на отсутствие элементов (пустая очередь);

Узнать/Взять значение информационной части первого элемента.

Для работы с элементами очереди используется перемещение элементов из головы в хвост, с запоминанием адреса прежнего конца/начала очереди, чтобы не зациклиться, или использование дополнительной очереди.

Дек (двухконечная очередь)

DEQ (Double Ended Queue)

Данные:

Адрес головы дека,

Адрес хвоста дека.

Допустимые операции:

Создать дек из 1 элемента;

Добавить элемент в голову/хвост дека;

Удалить элемент из головы/хвоста дека;

Проверка на отсутствие элементов.

Очистить дек (удалить все элементы)

Узнать/Взять значение информационной части первого или последнего элемента.

Для работы с элементами дека используется перемещение элементов из головы в хвост, с запоминанием прежнего конца дека, чтобы не зациклиться; или при просмотр элементов с конца – наоборот, перемещение элементов из хвоста в голову, с запоминанием прежней головы дека, чтобы не зациклиться. А также можно использовать дополнительный дек.