(Left + MaxSize-1)% MaxSize; Size + +; true;
}
// Витяг елемента з лівого кінця черги UnQueueLimSize :: OutLeft (
// false - витяг не виконане & out)// Значення, яке витягли
{
// Черга порожня? (Size == 0)
{false;
}
// Витягуємо елемент з черги = (Left +1)% MaxSize; out = pQueue [Left]; -; true;
}
// Витяг елемента з правого кінця черги UnQueueLimSize :: OutRight (
// false - витяг не виконане & out)// Значення, яке витягли
{
// Черга порожня? (Size == 0)
{false;
}
// Витягуємо елемент з черги = pQueue [Right]; = (Right + MaxSize-1)% MaxSize; -; true;
}
Текст програми
# include "stdio.h"
# include "conio.h"
# include
# include
# include
# include namespace std; Queue// клас чергу
{strucelem// вбудований клас
{: data ;//інформаційне поле * next ;//адресне поле * prev; () {next = 0; prev = 0;}// конструктор
}; * BeginQ ;//покажчик на перший елемент * LastQ ;//покажчик на попередній елемент: () ;//коструктор
~ Queue () ;//деструкторPrintQueue () ;//друк очередіAddQueue (T data) ;//додавання елементів у очередьCheckQueue () ;//перевірка стану очередіDelQueue () ;//видалення з очередіDeleteQueue () ;//видалення черзі
};
// Конструктор. :: Queue () {= 0; = 0;
}
// Деструкція - звільняємо чергу і пам'ять виділену під об'єкти. :: ~ Queue () {* work; (BeginQ) {= BeginQ-> next; BeginQ; = work;
} = NULL; = NULL;
}
// Друк черги void Queue :: PrintQueue ()
{* p = BeginQ; <
{<
data <<''; = p-> next;
} <
}
// Покласти в чергу. Queue :: AddQueue (T data) {* link = new strucelem;
(BeginQ == NULL) {> data = data; = link; = link;
} {> data = data;> next = link; = LastQ-> next;
}
}
// Перевірити стан черги. Queue :: CheckQueue () {(BeginQ) return true; return false;
}
<...