![]() |
diziler ile stack işlemleri |
#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: stack çıkarma, stack dizi, stack ekleme, stack işlemleri, yığın ekleme çıkarma işlemleri, yığın işlemleri