Yiğin oluşturup gelen bilgiyi (integer) yıgına atıp çıkartma işlemlerini gerçekleştiren program.(çift slaşla altta kapatılmış olan kodlar infix postfix içindir)#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include"time.h"
static int i;
typedef struct Yigin
{
int indis;
int eleman[100];
}Yigin_Kumesi;
int get_option(****);
Yigin_Kumesi *Yigin_Olustur() // Kurucu Metod Tanimlamasi
{
Yigin_Kumesi *Yeni_Yigin;
Yeni_Yigin=(Yigin_Kumesi*)malloc(sizeof(Yigin_Kume si));
Yeni_Yigin->indis=-1;
return Yeni_Yigin; // Tanimlama Bitti
}
int Yigin_Dolumu(Yigin_Kumesi *Yeni_Yigin)
{
if(Yeni_Yigin->indis>99)
{
puts("Yigin Dolu...");
return -1; // Yigin Dolu
}
else
return 0; // Yigin Bos
}
int Yigin_Bosmu(Yigin_Kumesi *Yeni_Yigin) // ???? SOR SOR ????
{
if(Yeni_Yigin->indis<0)
{
puts("Yigin Bos ...");
return -1;
}
else
//puts("Yigin Bos Degil!!!...");
return 0;
}
int Yigina_Ekle(Yigin_Kumesi *Yeni_Yigin,int ekle)
{
if(Yigin_Dolumu(Yeni_Yigin)==-1)
{
printf("Yigin Dolu...");
return -1;
}
else
{
Yeni_Yigin->indis++;
Yeni_Yigin->eleman[Yeni_Yigin->indis]=ekle;
printf("yigina eleman eklendi\n");
return 0;
}
}
int Yigindan_Cek(Yigin_Kumesi *Yeni_Yigin)
{
int cikan_eleman;
if(Yigin_Bosmu(Yeni_Yigin)<0)
{
printf("Yigin Bos!");
return -1;
}
else
{
cikan_eleman=Yeni_Yigin->eleman[Yeni_Yigin->indis];
Yeni_Yigin->indis--;
printf("%d sayisi sigindan cikarildi",cikan_eleman);
return 1;
}
}
int get_option(****)
{
char input[20];
int option;
printf("\n*******MENU*******\n");
printf("[1] LISTELE\n");
printf("[2] AL\n");
printf("[3] AT\n");
printf("[4] CIK\n");
printf("Secenek :... ");
fflush(stdin);
//gets(input);
scanf("%s",input);
option = atoi(input);
return option;
}
int Yigini_listele()
{
Yigin_Kumesi *Yeni_Yigin;
int sayac;
if(Yeni_Yigin->indis==-1){
printf("yigin su an için bos\n");
exit(0);}
for(sayac=0;sayac<=Yeni_Yigin->indis;sayac++){
printf("%d\n",Yeni_Yigin->eleman[sayac]);
}
}
int main() {
int ekle;
int option;
while(1) {
option = get_option();
switch(option)
{
case 1 : Yigini_listele(); break;
case 2 : printf("lutfen eklenecek sayiyi giriniz\n"); scanf("%d",&ekle); Yigina_Ekle(Yigin_Olustur(),ekle); break;
case 3 : Yigindan_Cek(Yeni_Yigin); break;
case 4 : printf("\nProgram sonlandirildi\n"); return 0;
default : printf("\nSecmis oldugunuz secenek gecersiz\n");
}
}
getch();
} //by M.KAPLAN
//############################################3
/*int Parantez_Kontrol(Yigin_Kumesi *Yeni_Yigin,char *islem) {
int i; //(2+3*(2-5)
for(i=0;i
if (islem[i]=='(') Yigina_Ekle(Yeni_Yigin,islem[i]);
else {
if (islem[i]==')')
if (Yigin_Bosmu(Yeni_Yigin)==-1)
return -1;
else Yigindan_Cikar(Yeni_Yigin);
}
if(Yigin_Bosmu(Yeni_Yigin)==-1)
return 0;
else return 1;
}
}*/
//##############################3
/*
**** cevir_10_2(Yigin_Kumesi *Yeni_Yigin,int sayi) {
int dijit;
while(sayi>0) {
dijit=sayi%2;
Yigina_Ekle(Yeni_Yigin,dijit);
sayi=sayi/2;
}
while(Yeni_Yigin->indis>=0) {
dijit=Yigindan_Cikar(Yeni_Yigin);
yaz("%d",dijit);
}
}
*/