Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Benzer belgeler
YMT219 VERİ YAPILARI ÖDEV-1

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

YZM 2116 Veri Yapıları

Özyineleme {\} /\ Suhap SAHIN Onur GÖK

YZM 2116 Veri Yapıları

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

AVL Agacı {\} /\ Suhap SAHIN Onur GÖK

KUYRUKLAR. Doç. Dr. Aybars UĞUR

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı. Mustafa Kemal Üniversitesi

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

Final Sınavı Soruları Güz, Süre: 90 Dakika

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ

Arasınav Örnek Soruları Bahar 2018

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

YIĞIT STACK. Yrd. Doç. Dr. Aybars UĞUR

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Final Sınavı Örnek Soruları Bahar 2018

Final Sınavı Soruları Bahar 2018

BAĞLAÇLI LİSTELER LINKED LISTS

BAĞLAÇLI LİSTELER LINKED LISTS

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

TEMPLATES. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

else *on=*on+1; return gecici; } int giseyeyerlestir(struct gise*giseler) {//giseye bos olmasi durumunda yerlestirme yapiliyor...

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

int main(void) { int num = 0; int input = 1; int retval = 0; struct NODE *nodepointer; nodepointer = (struct NODE *)malloc(sizeof(struct NODE));

D İ Z İ L E R A R R A Y S

Arasınav Soruları Bahar 2018

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

MAT213 Bilgisayar Programlama I

Bölüm 5. Ağaç. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 73

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

SOMEBODY ELSE'S. ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

STACK (ÇIKIN-YIĞIN-YIĞIT) VERİ YAPISI LAST-IN-FIRST-OUT LIFO VERİ YAPISI

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

Binary Tree nedir?uygulamas nasl yaplr?

Sınav Dağılım & IMKB Endeks

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

BİL132 Bilgisayar Programlama II

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Çok Yollu Ağaçlar (Multi-Way Trees)

YIĞIT STACK. Doç. Dr. Aybars UĞUR

AĞAÇLAR. Doç. Dr. Aybars UĞUR

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

Örnek 1: Programı yazın ve çalıştırın.

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

YZM 2116 Veri Yapıları

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Dağıtık Sistemler CS5001

Giris {\} /\ Suhap SAHIN Onur GÖK

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

11- FONKSİYONLAR (FUNCTIONS)

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

BİL-141 Bilgisayar Programlama I (Java)

OPERATÖRLER Alıştırmalar

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Object-Oriented Programming Lab 4. - Sıcaklık değeri, Kelvin biriminde saklansın. Varsayılan sıcaklık değeri K olsun.

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Operator Aşırı Yükleme (Operator OverLoading)

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Görsel Programlama (Visual Programming)

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

Veri Yapıları. Ağaçlar. Ağaçlar genel bilgi

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

public class SalesLineItem // Java { private int quantity; private ProductSpecification description; public Money getsubtotal() {...

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

C++ ile Nesneye Dayalı Programlama

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

{\} /\ Suhap SAHIN Onur GÖK

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

/*int sayi1, sayi2,toplam=0;

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

Transkript:

Yigin & Kuyruk 0 {\ /\ Suhap SAHIN Onur GÖK

Yıgın (Stack) son giren ilk çıkan LIFO ilk giren son çıkan

Yıgın islemleri(so) ekle push 31 stack overflow 24 31 U U 34 34 3 3 S S

Yıgın islemleri(so) al pop 31 stack underflow U 34 3 S

Yıgın islemleri(so) SP 31 U dolumu isfull 34 3 S

Yıgın islemleri(so) bosmu isempty SP

Yıgın islemleri(so) ekle(), push() al(), pop() O(1) bosmu(), isempty() dolumu(), isfull()

Yıgın Uygulamaları Sembollerin esitlenmesi #include <stdio.h> int main () { for(int i=0;i<10;i++){ // Kod

Yıgın Uygulamaları Son-ek(Posfix)/Ön-ek(Prefix) ifadeleri a op1 b op2 c op3 d op1 = + op2 = * op3 = +

Yıgın Uygulamaları Bir çok programdaki ileri-al, geri-al (redo-undo) ve ileri-git, geri-git (forward-backward) özellikleri

Yıgın Uygulamaları Tower of Hanoi, tree traversals

Yıgın Uygulamaları Backtracking, Knight tour problem, rat in a maze, sudoku solver

Yıgın isaretcisi (SP) ekle(3); ekle(2); al( ); al( ); SP SP SP 3 2 3 SP 3 SP 9 9 9 9 9 7 7 7 7 7 5 5 5 5 5 4 4 4 4 4 11 11 11 11 11

Yıgın Gerçeklestirimi int dizi[10]={35,33,42,10,14,19,27,44,26,31; Dizi 0 1 2 3 4 5 6 7 8 9 35 33 42 10 14 19 27 44 26 31 Baglantılı Listeler veri Sonraki veri Sonraki veri Sonraki 7 NULL

Yıgın(Dizi) & C struct Yigin { int SP; unsigned kapasite; int* dizi; ; Yigin kapasite SP *dizi

Yıgın(Dizi) & C struct Yigin* yiginolustur(unsigned kapasite) { struct Yigin* yigin = (struct Yigin*) malloc(sizeof(struct Yigin)); yigin->kapasite = kapasite; yigin->sp = -1; yigin->dizi = (int*) malloc(yigin->kapasite * sizeof(int)); return yigin; yigin kapasite kapasite-1 *dizi kapasite 1 0 SP=-1

Yıgın(Dizi) & C struct Yigin* yiginolustur(unsigned kapasite) { struct Yigin* yigin = (struct Yigin*) malloc(sizeof(struct Yigin)); yigin->kapasite = kapasite; yigin->sp = -1; yigin->dizi = (int*) malloc(yigin->kapasite * sizeof(int)); return yigin; 99 98. struct Yigin* yigin = yiginolustur(100); 1 0 SP = -1

Yıgın(Dizi) & C SP = 99 99 int dolumu(struct Yigin* yigin) { return yigin->sp == yigin->kapasite - 1; 98. 1 0

Yıgın(Dizi) & C 99 int bosmu(struct Yigin* yigin) { return yigin->sp == -1; 98. 1 0 SP = -1

Yıgın(Dizi) & C void ekle(struct Yigin* yigin, int veri) { if (dolumu(yigin)) return; yigin->dizi[++yigin->sp] = veri; printf("%d Yigina eklendi\n", veri); ekle(yigin, 10); veri SP = 2 SP = 1 99 98. 1 0

Yıgın(Dizi) & C int al(struct Yigin* yigin) { if (bosmu(yigin)) return INT_MIN; return yigin->dizi[yigin->sp--]; al(yigin); SP = 2 SP = 1 99 98. veri 1 0

Yıgın(Dizi) & C int main() { struct Yigin* yigin = yiginolustur(100); ekle(yigin, 10); ekle(yigin, 20); ekle(yigin, 30); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); return 0; SP = 0 SP = -1 99 98. 30 20 1 10 0

Yıgın(Dizi) & C int main() { struct Yigin* yigin = yiginolustur(100); ekle(yigin, 10); ekle(yigin, 20); ekle(yigin, 30); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); return 0; SP = 1 SP = 0 SP = -1 99 98. 30 20 1 10 0

Yıgın(Dizi) & C int main() { struct Yigin* yigin = yiginolustur(100); ekle(yigin, 10); ekle(yigin, 20); ekle(yigin, 30); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); return 0; SP = 2 SP = 1 SP = 0 SP = -1 99 98. 30 20 1 10 0

Yıgın(Dizi) & C int main() { struct Yigin* yigin = yiginolustur(100); ekle(yigin, 10); ekle(yigin, 20); ekle(yigin, 30); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); printf("yiginda %d alindi\n", al(yigin)); return 0; SP = 2 SP = 1 SP = 0 SP = -1 99 98. 30 20 1 10 0

Yıgın(Dizi) & Java class Yigin { static final int kapasite = 1000; int SP; int dizi[] = new int[kapasite]; boolean isempty() { return (SP < 0); Yigin() { SP = -1; SP = -1 999 998. 1 0

Yıgın(Dizi) & Java 99 boolean ekle(int x){ if (SP >= kapasite){ System.out.println("Stack Overflow"); return false; else{ dizi[++sp] = x; return true; x SP = 2 SP = 1 98. 1 0

Yıgın(Dizi) & Java int al(){ if (SP < 0){ System.out.println("Stack Underflow"); return 0; else{ int x = dizi[sp--]; return x; SP = 2 SP = 1 99 98. x 1 0

Yıgın(Dizi) & Java class Main { public static void main(string args[]) { Yigin s = new Yigin(); s.ekle(10); s.ekle(20); s.ekle(30); System.out.println(s.al() + " elemanı yigindan alindi"); SP = 2 SP = 1 SP = 0 SP = -1 99 98. 30 20 1 10 0

Yıgın(Dizi) & Java class Main { public static void main(string args[]) { Yigin s = new Yigin(); s.ekle(10); s.ekle(20); s.ekle(30); System.out.println(s.al() + " elemanı yigindan alindi"); SP = 2 SP = 1 99 98. 30 20 1 10 0

Yıgın(Baglı Liste) & C struct YiginDugum { int veri; struct YiginDugum* sonraki; ; YiginDugum veri *sonraki

Yıgın(Baglı Liste) & C struct YiginDugum* YeniDugum(int veri) { struct YiginDugum* yigindugum = (struct YiginDugum*) malloc(sizeof(struct YiginDugum)); yigindugum->veri = veri; yigindugum->sonraki = NULL; return yigindugum; *yigindugum veri NULL

Yıgın(Baglı Liste) & C struct YiginDugum* kok = NULL; *kok NULL

Yıgın(Baglı Liste) & C void ekle(struct YiginDugum** kok, int veri) { struct YiginDugum* yigindugum = YeniDugum(veri); yigindugum->sonraki = *kok; *kok = yigindugum; printf("%d verisine sahip dugum eklendi\n", veri); ekle(&kok, 10); *yigin dugum *kok 10 NULL

Yıgın(Baglı Liste) & C void ekle(struct YiginDugum** kok, int veri) { struct YiginDugum* yigindugum = YeniDugum(veri); yigindugum->sonraki = *kok; *kok = yigindugum; printf("%d verisine sahip dugum eklendi\n", veri); ekle(&kok, 10); *yigin dugum *kok 10 NULL

Yıgın(Baglı Liste) & C void ekle(struct YiginDugum** kok, int veri) { struct YiginDugum* yigindugum = YeniDugum(veri); yigindugum->sonraki = *kok; *kok = yigindugum; printf("%d verisine sahip dugum eklendi\n", veri); ekle(&kok, 10); ekle(&kok, 20); *yigin dugum *kok 20 10 NULL

Yıgın(Baglı Liste) & C void ekle(struct YiginDugum** kok, int veri) { struct YiginDugum* yigindugum = YeniDugum(veri); yigindugum->sonraki = *kok; *kok = yigindugum; printf("%d verisine sahip dugum eklendi\n", veri); ekle(&kok, 10); ekle(&kok, 20); *yigin dugum *kok 20 10 NULL

Yıgın(Baglı Liste) & C void ekle(struct YiginDugum** kok, int veri) { struct YiginDugum* yigindugum = YeniDugum(veri); yigindugum->sonraki = *kok; *kok = yigindugum; printf("%d verisine sahip dugum eklendi\n", veri); ekle(&kok, 10); ekle(&kok, 20); ekle(&kok, 30); *yigin dugum *kok 30 20 10 NULL

Yıgın(Baglı Liste) & C void ekle(struct YiginDugum** kok, int veri) { struct YiginDugum* yigindugum = YeniDugum(veri); yigindugum->sonraki = *kok; *kok = yigindugum; printf("%d verisine sahip dugum eklendi\n", veri); ekle(&kok, 10); ekle(&kok, 20); ekle(&kok, 30); *yigin dugum *kok 30 20 10 NULL

Yıgın(Baglı Liste) & C int bosmu(struct YiginDugum *kok) { return!kok; *kok veri NULL

Yıgın(Baglı Liste) & C int al(struct YiginDugum** kok) { if (bosmu(*kok)) return INT_MIN; struct YiginDugum* alinacak = *kok; *kok = (*kok)->sonraki; int alinan = alinacak->veri; free(alinacak); return alinan; al(&kok) *alinacak *kok 30 20 10 NULL

Yıgın(Baglı Liste) & C int al(struct YiginDugum** kok) { if (bosmu(*kok)) return INT_MIN; struct YiginDugum* alinacak = *kok; *kok = (*kok)->sonraki; int alinan = alinacak->veri; free(alinacak); return alinan; al(&kok) *alinacak *kok 30 20 10 NULL

Labirent Fare 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 Peynir SP = 3 16 15 3 Sag 2 Asagı 1 Basla 0

Labirent Fare 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 Peynir SP = 3 16 15 Sag 3 Sag 2 Asagı 1 Basla 0

Labirent Fare 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 Peynir SP = 3 16 15 Sag Sag 3 Sag 2 Asagı 1 Basla 0

Labirent Fare 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 Peynir SP = 3 16 15 Sag 3 Sag 2 Asagı 1 Basla 0

Labirent Fare 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 Peynir SP = 3 16 15 3 Sag 2 Asagı 1 Basla 0

Labirent Fare 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 Peynir SP = 3 16 15 Asagı 3 Sag 2 Asagı 1 Basla 0

Labirent Fare 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 Peynir

Kuyruk Her iki ucu açık Bir uçtan veri (enqueue) ekleme Diger uçtan veri (dequeue) çıkarma First-In-First-Out

Gösterim

Kuyruk Operasyonları enqueue(): Sona elemanı ekler dequeue(): En öndeki elemanı çıkartır isfull(): Kuyruk dolu mu? isempty(): Kuyruk bos mu?

Kuyruk Gerçeklestirimi int dizi[10]={35,33,42,10,14,19,27,44,26,31; Dizi 0 1 2 3 4 5 6 7 8 9 35 33 42 10 14 19 27 44 26 31 Baglantılı Listeler veri Sonraki veri Sonraki veri Sonraki 7 NULL

Kuyruk Gerçeklestirimi #define kapasite 6 int intarray[kapasite]; int on = 0; int arka = 0; int eleman_sayisi=0; 0 1 2 3 4 5 intarray 6 on = 0 arka = 0 eleman_sayisi = 0

Kuyruk Gerçeklestirimi 0 1 2 3 4 5 bool bos_mu(){ return eleman_sayisi==0; intarray eleman_sayisi = 0

Kuyruk Gerçeklestirimi 0 1 2 3 4 5 bool dolumu(){ return eleman_sayisi==kapasite; intarray 3 5 9 1 12 15 eleman_sayisi = 6

Kuyruk Gerçeklestirimi int ekle(int veri){ if(dolumu()) { printf("kuyruk dolu!\n"); return 0; intarray[arka]= veri; arka++; if(arka==kapasite) arka=0; eleman_sayisi++; return 1; ekle(3); ekle(5); ekle(9); ekle(1); ekle(12); intarray 3 0 1 2 3 4 5 on = 0 arka = 0 eleman_sayisi = 0

Kuyruk Gerçeklestirimi int ekle(int veri){ if(dolumu()) { printf("kuyruk dolu!\n"); return 0; intarray[arka]= veri; arka++; if(arka==kapasite) arka=0; eleman_sayisi++; return 1; ekle(3); ekle(5); ekle(9); ekle(1); ekle(12); intarray 3 0 1 2 3 4 5 on = 0 arka = 1 eleman_sayisi = 0

Kuyruk Gerçeklestirimi int ekle(int veri){ if(dolumu()) { printf("kuyruk dolu!\n"); return 0; intarray[arka]= veri; arka++; if(arka==kapasite) arka=0; eleman_sayisi++; return 1; ekle(3); ekle(5); ekle(9); ekle(1); ekle(12); intarray 3 0 1 2 3 4 5 on = 0 arka = 1 eleman_sayisi = 1

Kuyruk Gerçeklestirimi int ekle(int veri){ if(dolumu()) { printf("kuyruk dolu!\n"); return 0; intarray[arka]= veri; arka++; if(arka==kapasite) arka=0; eleman_sayisi++; return 1; ekle(3); ekle(5); ekle(9); ekle(1); ekle(12); intarray 3 5 0 1 2 3 4 5 on = 0 arka = 1 eleman_sayisi = 1

Kuyruk Gerçeklestirimi int ekle(int veri){ if(dolumu()) { printf("kuyruk dolu!\n"); return 0; intarray[arka]= veri; arka++; if(arka==kapasite) arka=0; eleman_sayisi++; return 1; ekle(3); ekle(5); ekle(9); ekle(1); ekle(12); intarray 3 5 0 1 2 3 4 5 on = 0 arka = 2 eleman_sayisi = 2

Kuyruk Gerçeklestirimi int ekle(int veri){ if(dolumu()) { printf("kuyruk dolu!\n"); return 0; intarray[arka]= veri; arka++; if(arka==kapasite) arka=0; eleman_sayisi++; return 1; ekle(3); ekle(5); ekle(9); ekle(1); ekle(12); ekle(15); 0 1 2 3 4 5 intarray 3 5 9 1 12 15 on = 0 arka = 6 eleman_sayisi = 6

Kuyruk Gerçeklestirimi int cikar(){ if(bos_mu()){ printf("kuyruk boş!"); return 0; int data = intarray[on]; on++; if(on==kapasite) on=0; eleman_sayisi--; return data; cikar( ); cikar( ); ekle(9); ekle(1); ekle(12); ekle(15); 0 1 2 3 4 5 intarray 3 5 9 1 12 15 on = 0 arka = 6 eleman_sayisi = 6

Kuyruk Gerçeklestirimi int cikar(){ if(bos_mu()){ printf("kuyruk boş!"); return 0; int data = intarray[on]; on++; if(on==kapasite) on=0; eleman_sayisi--; return data; cikar( ); cikar( ); ekle(9); ekle(1); ekle(12); ekle(15); 0 1 2 3 4 5 intarray 3 5 9 1 12 15 on = 1 arka = 6 eleman_sayisi = 5

Kuyruk(Baglı Liste) struct KuyrukDugumu { int veri; struct KuyrukDugumu * sonraki; ; KuyrukDugumu veri *sonraki

Kuyruk(Baglı Liste) class Kuyruk { private: KuyrukDugumu * ilk; KuyrukDugumu * son; int _sayi; public: Kuyruk() { this->_sayi = 0; this->ilk = this->son = NULL; void ekle(int veri); int al(); int sayi() { return this->_sayi; ; Kuyruk *k = new Kuyruk(); *son NULL sayi = 0 *ilk NULL

Kuyruk(Baglı Liste) void Kuyruk::ekle(int veri) { // bagli listede sona ekleme islemi KuyrukDugumu *k = new KuyrukDugumu(); k->veri = veri; k->sonraki = NULL; k->ekle(1); k->ekle(2); k->ekle(3); if (this->ilk == NULL) { this->ilk = this->son = k; else { this->son->sonraki = k; this->son = k; *k *son sayi = 0 *ilk this->_sayi++; 1 NULL NULL NULL

Kuyruk(Baglı Liste) void Kuyruk::ekle(int veri) { // bagli listede sona ekleme islemi KuyrukDugumu *k = new KuyrukDugumu(); k->veri = veri; k->sonraki = NULL; k->ekle(1); k->ekle(2); k->ekle(3); if (this->ilk == NULL) { this->ilk = this->son = k; else { this->son->sonraki = k; this->son = k; *ilk *k *son sayi = 1 this->_sayi++; 1 NULL

Kuyruk(Baglı Liste) void Kuyruk::ekle(int veri) { // bagli listede sona ekleme islemi KuyrukDugumu *k = new KuyrukDugumu(); k->veri = veri; k->sonraki = NULL; k->ekle(1); k->ekle(2); k->ekle(3); if (this->ilk == NULL) { this->ilk = this->son = k; else { this->son->sonraki = k; this->son = k; *ilk *son sayi = 1 *k this->_sayi++; 1 2 NULL

Kuyruk(Baglı Liste) void Kuyruk::ekle(int veri) { // bagli listede sona ekleme islemi KuyrukDugumu *k = new KuyrukDugumu(); k->veri = veri; k->sonraki = NULL; k->ekle(1); k->ekle(2); k->ekle(3); if (this->ilk == NULL) { this->ilk = this->son = k; else { this->son->sonraki = k; this->son = k; *ilk *son sayi = 2 *k this->_sayi++; 1 2 NULL

Kuyruk(Baglı Liste) int Kuyruk::al( ) { assert( this->sayi()!= 0 ); // eleman yoksa hata ver int veri = this->ilk->veri; // bagli listede bastan silme islemi KuyrukDugumu * silinecek = this->ilk; this->ilk = this->ilk->sonraki; delete silinecek; k->al( ); k->ekle(2); k->ekle(3); *silinecek sayi = 2 this->_sayi--; return veri; *ilk 1 2 NULL

Kuyruk(Baglı Liste) int Kuyruk::al( ) { assert( this->sayi()!= 0 ); // eleman yoksa hata ver int veri = this->ilk->veri; // bagli listede bastan silme islemi KuyrukDugumu * silinecek = this->ilk; this->ilk = this->ilk->sonraki; delete silinecek; k->al( ); k->ekle(2); k->ekle(3); *silinecek sayi = 1 this->_sayi--; return veri; *ilk 1 2 NULL

Sorular