Stack İşlemleri Hazır C Kodu

Sizlere kendi ellerimle yazdığım Stack İşlemleri C Kodlarını sunuyorum.

yığın işlemleri c kodu
diziler ile stack işlemleri

Stack İşlemi Fonksiyonları



Kodlama işlemi diziler ile yapılmıştır. Linked List olan versiyonunu daha sonra yayımlayacağım. 

Yığın C Kodu - (Yığın İşlemleri C Kodu)


#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

//dizi boyutunda kullanacağımız MAX değeri
#define MAX 10

//stack isimli bir struct yapısı oluşturduk
struct stack{
    int dizi[MAX];
    int top;
}stack;


// Stack bos mu değil mi kontrolü
bool isEmpty()
{
    if(stack.top == -1)
        return true;
    else
        return false;
}
//Stack dolu mu kontrolü
bool isFull()
{
    if(stack.top == MAX-1)
        return true;
    else
        return false;
}

//Yığına eleman Ekleyen fonksiyon
void push(int data)
{
    if(!isFull())
    {   
        //eleman eklendiğinde top değeri 1 artıyor.
        stack.top = stack.top + 1;
        stack.dizi[stack.top] = data;
    }
    else
    {
        printf("\n Stack Overflow!!!...");
    }
}

// Yığından eleman çıkaran fonksiyon
void pop()
{
    if(!isEmpty())
        stack.top = stack.top-1;
    else
        printf("\nStack zaten bos!");
}

//Yığının tepesindeki değeri kullanıcıya bildiren fonksiyon
void peek()
{
    printf("\n Yiginin TOP elemani %d'dir\n", stack.dizi[stack.top]);
}

// Yığındaki elemanları listeleyen fonksiyon
void yazdir()
{
    int i;
    if(isEmpty())
        printf("\n Stack Su anda Bos, Eleman Ekleyin\n ");
    else
        {
            for(i=0; i < stack.top+1; i++)
                printf("%d..", stack.dizi[i]);
            printf("  <= TOP elemani\n");
        }

}
// 4'e tıklarsanız sizi otomatik sitemizdeki stack konusuna yönlendirir.
void algoritmaUzmani();

//menü fonksiyonu
void menu()
{
    stack.top = -1;
    int secim, data;
    while(1==1)
    {
        printf("\n Asagidan Yapmak istediginiz islemi secin\n");
        printf("\n 1- Eleman Ekle\n");
        printf("\n 2- Eleman Cikar\n");
        printf("\n 3- Peek\n");
        printf("\n 4- Konuya Git (Web sitemizi acar, korkmayin :) )\n");
        yazdir();
        scanf("%d", &secim);

        switch(secim)
        {
        case 1:
            printf("\nEklemek istediginiz sayiyi girin...");
            scanf("%d", &data);
            push(data);
            yazdir();
            break;
        case 2:
            pop();
            break;
        case 3:
            peek();
            break;
        case 4:
            algoritmaUzmani();
            break;
        }
    }


}

int main()

{
    menu();
    return 0;
}

//sadece ilgili konuya gitmek icin. diger kodlar ile ilgisi yok
void algoritmaUzmani()
{
     system("C:\\Progra~2\\Google\\Chrome\\Application\\chrome.exe www.algoritmauzmani.com/2016/09/stack-c-kodu.html");
     printf("\n Eger asagida sistem yolu hatasi aliyorsaniz bunu onemsemeyin");
     if(system)
     {
          system("C:\\Progra~1\\Google\\Chrome\\Application\\chrome.exe www.algoritmauzmani.com/2016/09/stack-c-kodu.html");
          if(system)
            system("C:\\Progra~2\\Mozill~1\\firefox.exe www.algoritmauzmani.com/2016/09/stack-c-kodu.html");
            if(system)
                system("C:\\Progra~1\\Mozill~1\\firefox.exe www.algoritmauzmani.com/2016/09/stack-c-kodu.html");
     }
}

Etiketler: , , , , ,