KUYRUK (QUEUE).

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
İşlemci Zaman Planlaması
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Listeler.
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Nesneye Yönelik Programlama
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Nesneye Dayalı Programlama
String Diziler(Katarlar)
Diziler.
Bellek Yönetimi Process H 2 KB
ARICILIK KAYIT SİSTEMİ
Selçuk Üniversitesi’nin Bilişime Gönül Veren Gençleri
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Bellek Yönetimi.
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
C++ STACK SINIFI.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Diziler(Arrays).
Özyineli Sıralama Algoritmaları
Java Programlama Koleksiyon(Collection) Sınıfları
Dizi (ARRAY) Diziler grup halindeki değişkenler olarak tanımlanabilir. Dizi içersinde yüzlerce değişken olabilir. Dizi elemanları index adı verilen sıra.
NESNEYE YÖNELİK PROGRAMLAMA
Binary Ağaçlar (Ekleme/Silme Örnekleri)
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : LİSTELERE.
Nesneye Yönelik Programlama
P p 5. Bolum en cok kullanilan veri yapilarindan biri olan listeleri anlatmaktadir. p p Bu sunum da listeler uzerinde en cok yapilan islemleri aciklamaktadir.
İŞLEM TANIM: A boş olmayan bir küme olmak üzere,A×A nın bir R alt kümesinden A ya tanımlanan her fonksiyona, işlem denir.İşlemi tanımlarken,’’
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Veri Yapıları Yrd. Doç. Dr. Altan MESUT.
PROLOG PROGRAMLAMA DİLİNDE
KUYRUKLAR (QUEUES).
Ders İçeriği Liste Soyut veri yapısı (ADT)
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN.
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgeler gibi bazı teorik nesnelerin bellekte nasıl tutulduğunu ve algoritmalarca nasıl işlendiğini.
DİZİLER Arrays.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
KÜMELER.
Veri Yapıları.
FONKSİYONLAR.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Veri yapıları Hafta3 Dizi Yapıları.
pointerverisonraki 0Tülay 1Vedat6 LB3=22Pelin15 3Burak9 4Kadir 5Seyhan13 6Utku16 LB1=77Ayşe3 8 9Ceyda Dilek 12 13Şükrü4 LB2=1414Zeynep17.
Yığıt Soyut Veri Tipi (Stack ADT) Yığıt Veri Yapısı
AVL(Adel’son-Vel’skiĭ and Landis) Ağacı AVL ağacı, iki alt ağacının yükseklikleri farkının en fazla 1 olabildiği dengeli ikili arama ağacıdır. AVL ağacında.
Hashing (Çırpılama).
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi.
HTML Liste Oluşturma. Liste Etiketleri HTML sayfalarında liste oluşturmak için ve etiketlerini kullanırız. Numaralı listeler oluşturmak için: Madde imli.
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
Prolog Programlama LİSTELER (LISTS).
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
C Sharp 9. hafta - dIZILER.
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Yapılar, Kolleksiyonlar,Kutulama,Indeksçi
MTM216 GÖRSEL PROGRAMLAMA
İleri Algoritma Analizi
Sunum transkripti:

KUYRUK (QUEUE)

Hedef Yığın ve kuyruk veri modellerinin tanımlarını, kuyruk veri modellerinde bulunması gereken temelişlevleri, Dizi üzerinde kaydırmalı, Dizi üzerinde çevrimsel kuyruk tasarımını, Bağlantılı listeyle kuyruk tasarımını

Hatırlatma Bilginin geliş sırasına göre, en son gelen elemana ilk erişilen liste yapısına yığın (stack) denir. Bu yapıdaki listeler LIFO-Last In First Out (Son Gelen İlk Çıkar) listeler olarak da isimlendirilir.

kuyruk

Kuyruk Bir bankada fatura yatırmak için sırada bekleyen insanlar bir kuyruk örneği oluştururlar. Sıraya ilk giren kişi (Kuyruğun en önündeki kişi) ödemesini yaptıktan sonra sıra bir sonraki kişiye gelir. Yeni gelen bir kişi ise kuyruğun en sonuna gitmek zorundadır. En son hizmeti kuyruğun en sonundaki kişi alır. Kuyruk (queue), gelen isteklere bilginin geliş sırasına göre hizmet veren liste yapısıdır. Bu yapıdaki listeler FIFO-First In First Out (İlk Gelen İlk Çıkar) listeler olarak da isimlendirilir.

Kuyruk yapısını gerçekleştirebilmek için gerekli fonksiyonlar aşağıdaki gibidir: createQueue :Boş bir kuyruk yaratılır. append : Kuyruğa gelen eleman kuyruğun en sonuna eklenir. serve : Kuyruğun en başındaki eleman kuyruktan silinir. queueEmpty : Kuyruğun boş olup olmadığı bilgisi verilir. queueFull :Kuyruğun dolu olup olmadığı bilgisi verilir. 

X[i]: A B C D E F Kuyruk sonu Kuyruk başı B D E A C

Kuyruk tanımı n elemanlı kuyruk adlı br doğrusal kuyruk Kuyruk[1:n] type KB=0; KS=0; olarak tanımlanabilir. Kuyruk başı ve kuyruk sonu başlangıçta aynı yeri göstermektedir.

Kuruğa eleman ekleme Adım 1. if KS>=es then “Kuyruk Dolu” 4 Adım 2. KS=KS+1 Kuyruk(KS)=İşlem Adım 3. if KB=0 then KB=1 Adım4. İşlemi Bitir

Kuyruktan eleman çıkarma Adım1. if kb=0 then “boş” Adım2. İşlem=kuyruk[kb] Adım3. if kb=ks then kb=ks=0 else kb=kb+1 Adım4. başka eleman çıkarılacak mı? 1 Adım 5 İşlemi bitir

Veri akışı

Animasyonda da izlediğiniz gibi kuyruğun başındaki bir elemana hizmet verildiğinde işlemin bir dizi üzerinde yapıldığı düşünülürse, hizmet verilen elemanlara ait gözler kullanılmayacaktır. Yeni gelen elemanlar da kuyruktaki son elemanın arkasına ekleneceği için, bir süre sonra dizinin başında kullanılmayan gözler olmasına rağmen, dizinin sonunda yer kalmayacaktır.

Bu problemi önlemenin bir yolu, kuyruktan bir eleman çıktığında dizide bulunan bütün elemanları öne doğru birer kaydırmaktır. Fakat hareketin fazla olduğu bir kuyrukta bu yöntem sistemin yavaş çalışmasına sebep olacaktır. Bunun için, kullanılabilecek en uygun yöntem dairesel kuyruk yapısı kullanmaktır.

Dairesel kuyruk Kuyruk başını ve kuyruk sonunu gösteren adreslerin dairesel olarak ilerlediği kuyruk yapısıdır. Burada n. Adresten sonra 0. adres gelebilmektedir.

A B C D E F G H I KB KS G A B F E C D

Kuyruğun başını ve sonunu gösteren adreslerin dairesel olarak ilerlediği yani, n. adresten sonra 0. adresin geldiği kuyruk yapısına dairesel kuyruk yapısı denir. Dairesel kuyruğa bir eleman eklendiğinde kuyruğun sonunu gösteren adres 1 artar. Dairesel kuyruktan bir eleman silindiğinde kuyruğun başını gösteren adres 1 artar.Her iki adres de n. adresi gösterdiğinde bir sonraki adımda 0. adresi göstereceklerdir.