Stack

FILO (First In Last Out) veya LIFO (Last In First Out) mantığında olan linear (doğrusal) bir veri yapısıdır. Bu veri yapısından eleman çıkarılmak istendiğinde son eleman ilk çıkan eleman olacaktır. İlk eleman ise en son stack’den çıkacaktır.

Stack’deki son elemanın index değeri top’da tutulur. Stack’e eleman eklemek veya stack’den eleman silmek istenildiğinde top değerinden faydalanılır. Boş bir stack’de top’ın değeri -1‘dir.

Stack’e elaman eklemek için push(), stack’den eleman silmek için pop(), stack’in son elemanın değerini döndürmek için peek() metodu kullanılır.

Eleman Ekleme Push()

Her zaman, eleman stack’in sonuna eklenir.

Bir stack’e eleman eklemek için ilk olarak stack’in dolu olup olmadığı kontrol edilir. Stack doluysa eleman eklenemez. Dolu değilse top değeri bir arttırılır ve stack’in sonuna, yani top’ıncı indexi’ine eleman eklenir.

void push(int number) {
    if(top+1 == MYSTACK_SIZE) {
        printf("Stack dolu");
    } else {
        top++;
        myStack[top] = number;
    }
}
Eleman silme Pop()

Stack’de her zaman son eleman silinir.

Bir stack’den eleman silmek için ilk olarak stack’in boş olup olmadığı kontrol edilir. Eğer boşsa eleman silinemez. Boş değilse top’ın değeri bir azaltılır ve artık silinmek istenilen elemana erişim sağlanamaz.

void pop() {
    if(top == -1) {
        printf("Stack'de silinecek eleman yok");
    } else {
        top--;
    }
}

Son elemanı Görüntüleme Peek()

Stack’deki top index‘ine sahip elemanı, yani son stack’in elamanının değerini döndürür.

int peek() {
    return myStack[top];
}

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir