Öğr. Gör. Dr. Alper VAHAPLAR
2014 – 2015
Stack (Yığın)
Kuyruk (Queue)
Linked List (Bağlı/Bağlantılı Liste)
Tree (Ağaç)
Graph (Çizge / Graf)
State Machine (Durum Makinası)
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
2
1
Stack (Yığın) Veri Modeli
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
3
Bellek adresleme üzerine kurulu,
Sıralama ve geçici saklama için kullanılan,
LIFO (Last In First Out) Son giren ilk çıkar
mantığıyla çalışan,
Soyut (abstract) veri yapısıdır.
Temel iki işlem:
push (en üste veri ekleme)
pop (en üstten veri alma ve çıkarma)
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
4
2
Array ile stack uygulaması
int stack[10]={0}, top=0;
main()
{
push(5);
5
stack[0]
push(9);
12
stack[1]
push(7);
stack[2]
pop();
stack[3]
pop();
push(12);
stack[4]
}
stack[5]
stack[6]
…
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
5
Kullanıcının gireceği 10 adet sayıyı stack(ler) kullanarak sıralayın…
void ekle(int sayi)
{
if (ttop==0)
pusht(sayi);
else {
if ((t[ttop-1]<=sayi))
pusht(sayi);
else
{
while ((ttop>0) && (t[ttop-1]>sayi)) pushy(popt());
pusht(sayi);
while (ytop>0) pusht(popy());
}
}
}
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
6
3
Yığın Örnekleri
Palindrome: Düzden ve tersten aynı okunan
ifadelere palindrome denir.
Ör:
kabak
traş şart
a man a plan a canal panama
Alıştırma:
Verilen bir kelimenin palindrome olup olmadığını
stackler ile bulduran programı yazınız.
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
7
Stack (Yığın)
Kuyruk (Queue)
Linked List (Bağlı/Bağlantılı Liste)
Tree (Ağaç)
Graph (Çizge / Graf)
State Machine (Durum Makinası)
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
8
4
FIFO (First In First Out )
Bellek üzerinde oluşturulan soyut bir model
Alper VAHAPLAR
9
Gerçek hayattan örnekler:
BİL2001-Algoritmalar ve Veri Yapıları
Yemekhane,
Banka,
Otoyol Gişeleri,
Market kasa kuyrukları
Bilgisayarda
Yazıcı kuyruğu,
İşlem kuyruğu,
Ağ paketleri…
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
10
5
Kuyruk İşlemleri
Ekle (q, a):
Enqueue (Stacklerdeki PUSH)
q kuyruğunun sonuna “a” nesnesini ekler.
x = Çıkar(q):
Dequeue (Stacklerdeki POP)
q kuyruğunun başındaki elemanı silerek x’e atar.
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
11
Kuyruk Çeşitleri
Dizi üzerinde sabit (Front, Rear)
Dizi üzerinde Kaydırmalı (Front = 0)
Dizi üzerinde çevrimsel (Circular)
Linked List ile
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
12
6
Doğrusal Kuyruk
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
13
Ekleme işlemi
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
14
7
Ekleme işlemi
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
15
Çıkarma işlemi
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
16
8
Çıkarma işlemi
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
17
Kaydırma ile (Shifting)
“A” kuyruktan çıksın
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
18
9
Çevrimsel (Circular)
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
19
Çevrimsel (Circular)
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
20
10
Array Yapısı kullanarak 10 sayı
saklayabilecek bir kuyruk yapısı oluşturup
ekleme ve çıkarma işlemlerini gerçekleştiren
programı yazınız.
Shifting ile uygulayınız.
Circular queue oluşturunuz.
Alper VAHAPLAR
BİL2001-Algoritmalar ve Veri Yapıları
21
11
© Copyright 2025 Paperzz