Verilənlərin strukturu və alqoritmlər Mövzu: Növbələr (Queue)



Yüklə 336 Kb.
tarix11.06.2023
ölçüsü336 Kb.
#128573
Alqoritmlər-FF-RAUF

Verilənlərin strukturu və alqoritmlər Mövzu:Növbələr (Queues)

Hazırlayan:Rauf Umudov

Queue məlumatların yaddaşda saxlanması üçün istifadə olunan xətti məlumat strukturlarından biridir. Növbə, Birinci Gələn İlk Çıxır ( FIFO ) üsuluna əsaslanaraq məlumatları ardıcıl olaraq saxlayan xətti məlumat strukturudur və həmçinin İlk Gələn İlk Xidmət Verilən məlumat strukturu kimi də tanınır .

Queue məlumatların yaddaşda saxlanması üçün istifadə olunan xətti məlumat strukturlarından biridir. Növbə, Birinci Gələn İlk Çıxır ( FIFO ) üsuluna əsaslanaraq məlumatları ardıcıl olaraq saxlayan xətti məlumat strukturudur və həmçinin İlk Gələn İlk Xidmət Verilən məlumat strukturu kimi də tanınır .


Məlumat və ya element arxa tərəfdən daxil edilir, digər tərəfdən elementlər ön hissədən çıxarılır.
  • Enqueue: növbənin sonuna element əlavə edir. Növbənin vaxt mürəkkəbliyi O:1-dir.

Növbənin əsas əməliyyatları aşağıdakılardır.
  • Dequeue: Bu əməliyyat elementi növbədən çıxarır. O, FIFO qaydasına əsasladığından, elementləri əlavələr sırasına görə buraxır. Növbə boşaldıqda, aşağı axın vəziyyətinə çatır. Zaman mürəkkəbliyi O:1-dir.
  • Front: O, növbədən ilk elementi verir. Zaman mürəkkəbliyi O:1-dir.
  • Rear: O, növbədən son elementi verir. Zaman mürəkkəbliyi O:1-dir.

Python-da növbə üzərində əməliyyatları yerinə yetirmək üçün çoxsaylı üsullar mövcuddur. Standart üsullardan bəziləri bunlardır:
put(item): Elementi növbəyə daxil edir
get(): Növbədən element alır
empty(): Növbə boşdursa yoxlayır və doğrunu qaytarır
qsize: növbənin uzunluğunu qaytarır
full(): Növbənin dolu olduğunu yoxlayır və doğru qaytarır
maxsize(): Növbədə icazə verilən maksimum elementlər
Python-da növbəni həyata keçirməyin müxtəlif yolları var. Bu məqalə Python kitabxanasından verilənlər strukturları və modullarından istifadə edərək növbənin həyata keçirilməsini əhatə edir.
Python-da növbə aşağıdakı yollarla həyata keçirilə bilər:
List
collections.deque
queue.Queue
Dörd növ növbə var:
Sadə növbə
Dairəvi növbə
Prioritet növbəsi
İkiqat növbə
Sadə növbə
Sadə bir növbədə daxiletmə arxada, çıxarılması isə öndə baş verir. O, FIFO (First in First out) qaydasına ciddi şəkildə əməl edir.
Dairəvi növbə
Dairəvi növbədə sonuncu element dairəvi əlaqə yaradan birinci elementə işarə edir.
Dairəvi növbənin sadə növbəyə nisbətən əsas üstünlüyü yaddaşın daha yaxşı istifadəsidir. Əgər sonuncu mövqe doludursa və birinci mövqe boşdursa, birinci mövqeyə element daxil edə bilərik. Bu hərəkət sadə növbədə mümkün deyil.
Prioritet növbəsi
Prioritet növbə hər bir elementin prioritetlə əlaqələndirildiyi və prioritetinə uyğun olaraq xidmət göstərildiyi xüsusi növbə növüdür. Eyni prioritetə ​​malik elementlər baş verərsə, onlar növbədə öz sıralarına uyğun olaraq xidmət göstərirlər.
Prioritet növbəsi
Prioritet növbə təmsilçiliyi
Daxiletmə dəyərlərin gəlişi əsasında baş verir və çıxarılması prioritet əsasında baş verir.
Deque (İkitərəfli növbə)
İkitərəfli növbədə elementlərin daxil edilməsi və çıxarılması həm öndən, həm də arxadan həyata keçirilə bilər. Beləliklə, FIFO (First In First Out) qaydasına əməl etmir.
Elementlərin növbədən çıxarılması növbənin Arxa ucundan baş verir. Elementin növbədən çıxarılması prosesi deque adlanır. Bu anlayışı daha aydın başa düşmək üçün aşağıdakı nümunəyə baxaq:
ÇIXIŞ:
yanvar
fevral
Yüklə 336 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin