• Sonuç bulunamadı

Yrd.Doç.Dr. M. Ali Akcayol G. Ü. Bilgisayar Mühendisliği Bölümü

N/A
N/A
Protected

Academic year: 2021

Share "Yrd.Doç.Dr. M. Ali Akcayol G. Ü. Bilgisayar Mühendisliği Bölümü"

Copied!
6
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

z Queues

z Circular queues

z Priority queues

Yrd.Doç.Dr. M. Ali Akcayol G. Ü. Bilgisayar Mühendisliği Bölümü

KUYRUKLAR

KUYRUK YIĞIN

(2)

G. Ü. Bilgisayar Mühendisliği Bölümü

• Kuyruktaki elemanlardan sadece ilk eklenene erişim yapılır.

• Kuyruğa son eklenen eleman en son elde edilir.

• FIFO (First-in-First-out) veya

LILO (Last-in-Last-out) mantığıyla çalışır.

• İki tane temel işlem yapılabilir ;

- enqueue, kuyruğun sonuna yeni bir eleman ekleme - dequeue, kuyruğun ilk elemanın alınması

G. Ü. Bilgisayar Mühendisliği Bölümü

KUYRUKLAR

Dizilerle veya bağlı listelerle yapılabilir.

Dizilerde boyut değiştirme ve yeni elemen ekleme zorluğundan dolayı genellikle bağlı dizilerle yapılır.

İlk elemanı gösteren bir node tanımlanır (headNode).

enqueue

dequeue Son eklenen

İlk eklenen

İlk (headNode)

(3)

G. Ü. Bilgisayar Mühendisliği Bölümü

Örnek kullanım yerleri :

z

Bilgisayarlarda kaynak paylaşımı sırasında kullanılır.

z

Yazıcıya gönderilen işler kuyruğa konulur ve sonra geliş sırasına göre işlem yapılır.

z

Bilgisayar ağlarında paket bilgilerin gönderiminde kullanılır.

kisiAdı

kisiAdı

kisiAdı

KUYRUKLAR

headNode

Son eleman

Queue oluşturma : class queueNodeC {

public string kisiAdi;

public queueNodeC sonraki;

public queueNodeC(string kisiAdi) { this.kisiAdi = kisiAdi;

} }

class queueC {

public int size;

public queueNodeC headNode;

public queueC(string kisiAdi) {

this.headNode = new queueNodeC(kisiAdi);

this.headNode.sonraki = headNode;

this.size = 0;

} }

queueC kisiKuyruk = new queueC("");

(4)

G. Ü. Bilgisayar Mühendisliği Bölümü Queue işlemleri :

z boş kuyruk size == 0 z eleman sayısı size

z eleman ekleme enqueue(kisiAdi) z eleman alma dequeue()

public void enqueue(kisiAdi) {

queueNodeC yeniNode = new queueNodeC(kisiAdi);

queueNodeC aktif = kisiKuyruk.headNode;

while (aktif.sonraki != aktif) {

aktif = aktif.sonraki;

}

aktif.sonraki = yeniNode;

yeniNode.sonraki = yeniNode;

kisiKuyruk.size++;

}

headNode

kisiAdı

kisiAdı

kisiAdı

kisiAdı

G. Ü. Bilgisayar Mühendisliği Bölümü

KUYRUKLAR

Queue işlemleri (eleman alma)

public void dequeue() {

queueNodeC yeniNode = new queueNodeC(“ ”);

yeniNode = kisiKuyruk.headNode;

kisiKuyruk.headNode = kisiKuyruk.headNode.sonraki;

kisiKuyruk.size--;

}

headNode

kisiAdı

kisiAdı

kisiAdı

(5)

G. Ü. Bilgisayar Mühendisliği Bölümü Circular Queues (Dairesel Kuyruklar)

z En son eleman kuyruğun ilk elemanını gösterir.

kisiAdi kisiAdi kisiAdi kisiAdi

rearNode headNode

KUYRUKLAR

Priority Queues (Öncelikli Kuyruklar)

z Kuyruktaki işler kendi arasında önceliklerine göre seviyelendirilebilir.

z Her öncelik seviyesinin headNode ve rearNode’u vardır.

z Elaman alınırken en yüksek seviyeye ait elemanların ilk geleni öncelikli alınır.

z Yüksek öncelik seviyeli grubun son elemanı düşük öncelik seviyeli grubun ilk elemanından daha önceliklidir.

yüksek öncelik seviyeli

Havale Bono Para

yatırma

Para çekme

düşük öncelik seviyeli rearNode headNode

rearNode

headNode

(6)

Uygulama programı (Stacks ve Queues):

zG. Ü. Bilgisayar Mühendisliği Bölümü

G. Ü. Bilgisayar Mühendisliği Bölümü

KUYRUKLAR

Haftalık Ödev:

Banka kuyruğu örneğindeki yapıyı öncelikli kuyruk yapısına

dönüştürünüz. Banka işlemlerini kendi içerisinde üç öncelik

grubuna ayırınız. Her yeni gelen kişiyi iş seçimine göre otomatik

olarak ait olduğu grubun en sonuna ekleyiniz (enqueue). Her

eleman alımında (dequeue) ise kuyruktaki en yüksek seviyeli

grubun ilk elemanını alınız.

Referanslar

Benzer Belgeler

sbyte, byte, short, , byte, short, ushort ushort, , int int, , uint uint, long, , long, ulong ulong, float, , float, double, decimal, char,}. double, decimal, char, bool

• Eğer ch sağ parantez ise opstack’ta sol parantezi görene kadar tüm operatörleri pop yap ve postfix’e ekle. • Eğer ch bir operatör ise opstack’taki önceki operatörleri #

Günümüzde gelişen uydu teknolojisine paralel olarak yüksek konumsal çözünürlüklü uydu sistemleri de mevcuttur, ancak dijital hava fotoğraflarının konumsal çözünürlüğü

a)Açık ihale usulü veya belli istekliler arasında ihale usulü ile yapılan ihale sonucunda teklif çıkmaması. b)İhalenin, araştırma ve geliştirme sürecine ihtiyaç gösteren

Bunların dışında, Kuzey Kıbrıs’ta Azınlık Hakları / Minority Rights in North Cyprus (Lefkoşa, Kıbrıslı Türk İnsan Hakları Vakfı Yayınları, 2012, 140 sayfa)

• Sayısal olarak simetrik bir güzelliğe sahip 2020 yılında eğitim – öğretim faaliyetleri ile akademik çalışmalarına başlayacak olan bölümümüz genç, idealist ve

üzerindeki çizgiler bu sıcaklık için kalibre edilmiştir.. Bu kaptaki gazın mol sayısını bulunuz. / basıncı altında 0.3501 # hacme sıkıştırılırsa tankın

Potansiyel enerji : Bir referansa göre ölçülen ve parçacığın konumundan kaynaklanan enerji potansiyel enerji olarak tanımlanır.. Mekanikte, yerçekiminden yada eleastik bir