![]() |
| 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