Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Основні операції з чергоюангл. enqueue — "поставити в чергу". Операція додавання елемента в "хвіст" черги. При цьому довжина черги збільшується на одиницю. Якщо відбувається намагання додати елемент у вже заповнену чергу, відбувається її переповнення (англ. queue overflow). англ. dequeue — "отримання з черги". Операція, яка повертає елемент з голови та видаляє його з черги, таким чином встановлюючи голову на наступний за видаленим елемент та зменшуючи довжину на одиницю. При намаганні видалити елемент з пустої черги, виникає ситуація "незаповнення" (англ. queue underflow). Реалізація на мовах програмування Черга може бути реалізована за допомогою масива Q[1..n], в якому зберігаються дані та двох додаткових змінних head[Q] та tail[Q], в яких зберігаються індекси відповідно "голови" та "хвоста" черги, lenght[Q] -- довжина черги. Тоді операції enqueue та dequeue запишуться так: ENQUEUE (Q, x) 1 Q[tail[Q]]:= x 2 if tail[Q] = length[Q] 3 then tail[Q]:= 1 4 else tail[Q]:= tail[Q] + 1 DEQUEUE (Q) 1 x:= Q[head[Q]] 2 if head[Q] = length[Q] 3 then head[Q]:= 1 4 else head[Q]:= head[Q] + 1 5 return x Черга з пріорітетами (англ. priority queue) — це структура даних, що призначена для обслуговування множини S, з кожним елементом якої пов'язано певне значення, що зветься ключем (англ. key). Черга з пріорітетами може бути неспадною або незростаючою. В незростаючій черзі з пріорітетами підтримуються наступні операції: Операція Insert(S,x) вставляє елемент x в множину S. Операція Maximum(S) повертає елемент множини S з найбільшим ключем. Операція Extract_Max повертає елемент з найбільшим ключем, видаляючи його при цьому з множини S. Операція Change_Key(S,x,k) змінює значення ключа для елемента x, шляхом заміни його ключем зі значенням k.
|