NİŞANTAŞI ÜNİVERSİTESİ

Slides:



Advertisements
Benzer bir sunumlar
MIT503 Veri Yapıları ve algoritmalar Veri Yapılarına Giriş
Advertisements

C# - Metotlar.
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Listeler.
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Nesneye Yönelik Programlama
Nesneye Dayalı Programlama
Veri Yapıları ve Algoritmalar dönem
C++ STACK SINIFI.
Özyineli Sıralama Algoritmaları
Java Programlama Koleksiyon(Collection) Sınıfları
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
MIT503 Veri Yapıları ve algoritmalar Veri Yapılarına Giriş
Veri Yapıları Ve Algoritmalar
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.
Veri Yapıları Yrd. Doç. Dr. Altan MESUT.
KUYRUKLAR (QUEUES).
Demet AYDIN METODLAR Demet AYDIN
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Veri.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
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.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Veri Yapıları.
Veri yapıları Hafta3 Dizi Yapıları.
KUYRUK (QUEUE).
Yığıt Soyut Veri Tipi (Stack ADT) Yığıt Veri Yapısı
8086 Programlama – Kısım IV Stack’ler, Makro’lar
Ç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.
ANAHTARLAMALI DA-DA ÇEVİRİCİLER YÜKSELTİCİ TİP (BOOST) ÇEVİRİCİLER
GÜÇ ELEKTRONİĞİ II EEM Yrd. Doç. Dr. Bilal GÜMÜŞ Dicle Üniversitesi
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
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İ
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İ
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İ
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İ
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İ
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İ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

NİŞANTAŞI ÜNİVERSİTESİ Veri Yapıları ve Algoritmalar DERS 6 NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr

YBLG202 Veri Yapıları ve Algoritmalar DERS 6 KUYRUK (QUEUE) NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu KUYRUK Kuyruk (Queue) Kuyruk (queue) veri yapısı stack veri yapısına çok benzer. Kuyruk veri yapısında da veri ekleme (enqueue) ve kuyruktan veri çıkarma (dequeue) şeklinde iki tane işlem tanımlıdır. Yığınların tersine FIFO (First In First Out) prensibine göre çalışırlar ve ara elemanlara erişim doğrudan yapılamaz. Veri ekleme stack’teki gibi listenin sonuna eklenir. Fakat veri çıkarılacağı zaman listenin son elemanı değil ilk elemanı çıkarılır. Bu ise, kuyruk veri yapısının ilk giren ilk çıkar tarzı bir veri yapısı olduğu anlamına gelir. typedef struct { int cnt; struct node *front; struct node *rear; }queue; NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu KUYRUK Kuyruğa Eleman Eklemek (enqueue) Bir kuyruğa eleman ekleme fonksiyonu enqueue olarak bilinir ve bu fonksiyon, kuyruğun adresini ve eklenecek elemanın değerini parametre olarak alır. Geri dönüş değeri olmayacağı için türü void olmalıdır. Ayrıca eleman ekleyebilmek için kuyruğun dolu olmaması gerekir. stack’lerdeki push işlemi gibidir. void enqueue(queue *q, int x) { if(!isFull(q)) { struct node *temp = (struct node *)malloc(sizeof(struct node)); temp -> next = NULL; temp -> data = x; if(isEmpty(q)) q -> front = q -> rear = temp; else { q -> rear -> next = temp; q -> rear = temp; }q -> cnt ++; } NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu KUYRUK Kuyruktan Eleman Çıkarma İşlemi (dequeue) Bir kuyruktan eleman çıkarma fonksiyonu dequeue olarak bilinir ve fonksiyon, kuyruğun adresini parametre olarak alır. İlk giren elemanı çıkarmak demektir. Çıkarılan elemanın veri değeriyle geri döneceği için fonksiyonun tipi int olmalıdır. Eleman çıkartabilmek için kuyruğun boş olmaması gerekir. stack’lerdeki pop işlemi gibidir. int dequeue(queue *q) { if(!isEmpty(q)) { struct node *temp = q -> front; int x = temp -> data; q -> front = temp -> next; free(temp); q -> cnt--; return x; } NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu KUYRUK Kuyruk (queue) NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

YBLG202 Veri Yapıları ve Algoritmalar Kaynakça NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu KAYNAKÇA M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, Inc., 2011 Hakan Kutucu, VERİ YAPILARI, Karabük Üniversitesi Mühendislik fakültesi, 2014 Data Structures and Algorithms, TutorialPoints, NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu