Professional Documents
Culture Documents
DSL3 Stacks
DSL3 Stacks
z Yığın İşlemleri
z Postfix, Prefix, Infix
YIĞINLAR
1
YIĞINLAR
YIĞINLAR
• 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.
• En üst veya en son elemanı gösteren bir node tanımlanır (headNode).
pop
push
İlk eklenen
G. Ü. Bilgisayar Mühendisliği Bölümü
2
YIĞINLAR
Örnek kullanım yerleri :
z Yazılım uygulamalarındaki Undo işlemleri stack ile
yapılır.
Undo işlemi için LIFO yapısı kullanılır.
YIĞINLAR
Stack oluşturma :
class stackNodeC
{
public string kitapAdi;
public stackNodeC sonraki; headNode
public stackNodeC(string kitapAdi)
{
this.kitapAdi = kitapAdi;
}
} kitapAdı
class stackC
{
public stackNodeC headNode;
public stackC(string kitapAdi) kitapAdı
{
this.headNode = new stackNodeC(kitapAdi);
this.headNode.sonraki = headNode;
}
kitapAdı
}
3
YIĞINLAR
Stack işlemleri :
z boş yığın stackSize() == 0
z eleman sayısı stackSize()
z eleman ekleme push(kitapAdi) headNode
z eleman alma pop()
YIĞINLAR
Stack işlemleri (eleman ekleme)
public void push(string kitapAdi)
{
if (stackSize() >= MaxSize)
MessageBox.Show("Yığın maksimum elemana sahip ! Yeni
eleman eklenemez !", "Dikkat");
else
{
stackNodeC yeniNode = new stackNodeC(tBKitapAdi.Text);
yeniNode.sonraki = kitapYigin.headNode;
kitapYigin.headNode = yeniNode; kitapAdı
lStackSize.Text = "Stack Size =
"+Convert.ToString(stackSize());
}
headNode kitapAdı
}
kitapAdı
4
YIĞINLAR
Stack işlemleri (eleman alma)
headNode kitapAdı
YIĞINLAR
Örnek:
{
İşlem sırası
{…[…(…)…]…}
5
YIĞINLAR
Örnek:
[
İşlem sırası {
{…[…(…)…]…}
YIĞINLAR
Örnek:
(
İşlem sırası [
{
{…[…(…)…]…}
6
YIĞINLAR
Örnek:
[
İşlem sırası {
{…[…(…)…]…}
YIĞINLAR
Örnek:
{
İşlem sırası
{…[…(…)…]…}
7
YIĞINLAR
Örnek:
İşlem sırası
{…[…(…)…]…}
YIĞINLAR
İşlem:
(a+{b-c}*[d+(a+b))
Stack:
• (
• ({
• ( Hata !
• ([
• ([(
• ([
8
YIĞINLAR
Infix, Postfix, Prefix:
Infix ((A/(B^C))–((D*E)–(A*C)))
((A/(B^C))–((D*E)–(A*C)))
Postfix ABC^/DE*AC*––
((A/(B^C))–((D*E)–(A*C)))
Prefix –/A^BC–*DE*AC
zG. Ü. Bilgisayar Mühendisliği Bölümü
YIĞINLAR
Postfix Örnek:
Aşağıdaki infix gösterimini postfix haline dönüştürünüz.
Infix A*B+(C–D/E) postfix AB*CDE/-+
9
YIĞINLAR
Postfix Örnek (devam):
Infix A*B+(C–D/E)
YIĞINLAR
Postfix Kurallar ve İşlemler:
10
YIĞINLAR
Örnek Labirent Oyunu (Maze): Backtraking uygulaması
11
12
13
14
15
16
17
18
19
YIĞINLAR
Uygulama programı (Stacks ve Queues):
YIĞINLAR
Uygulama programı (Maze - Stack):
20
YIĞINLAR
Haftalık Ödev:
1- Örnek programı verilen Maze (Labirent) uygulamasını 12x12
boyutunda yeniden düzenleyiniz. Başlangıç olarak istediğimiz
noktadan başlayabilmemizi sağlayınız.
YIĞINLAR
Gelecek Hafta
Kuyruklar
(Queues)
21