#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
//Created by Krisna Anggara
#define n 10
int S[n],top1,top2,x,i;
char jawab,jawab1;
void awal()
{
top1=-1;top2=n;
}
void push1()
{
if (top2-top1>1)
{
top1=top1++;
S[top1]=x;
}
else
cout<<"Stack penuh";
}
void push2()
{
if (top2-top1>1)
{
top2=top2--;
S[top2]=x;
}
else
cout<<"Stack penuh";
}
void pop1()
{
if (top1>-1)
{
x=S[top1];
top1=top1--;
cout<<"Isi Stack Adalah : "<<S[top1];
}
else
cout<<"Stack kosong";
}
void pop2()
{
if (top2<n)
{
x=S[top2];
top2++;
cout<<"Isi Stack Adalah : "<<S[top2];
}
else
cout<<"Stack kosong";
}
void main()
{
int pilih;
awal();
menu :
clrscr();
cout<<"1.PUSH1"<<endl;
cout<<"2.PUSH2"<<endl;
cout<<"3.POP1"<<endl;
cout<<"4.POP2"<<endl;
cout<<"5.EXIT"<<endl;
cout<<"Inputkan pilihan anda :";
cin>>pilih;
switch (pilih)
{
case 1 :
clrscr();
do
{
cout<<"Inputkan data :";
cin>>x;
push1();
cout<<"Apakah Anda Ingin Memasukan Data Lagi? [Y/T] :";cin>>jawab;
}
while ((jawab=='Y')||(jawab=='y'));
cout<<"Isi Stack Sebelum POP :"<<endl;
for(i=0;i<=top1;i++)
{
cout<<"|";
cout<<S[i]<<"| ";
}
cout<<endl;
cout<<"Apakah anda ingin kembalik ke menu? [Y/T] :";cin>>jawab1;
if ((jawab1=='Y')||(jawab1=='y'))
{
goto menu;
} else
break;
case 2 :
clrscr();
do
{
cout<<"Inputkan data :";
cin>>x;
push2();
cout<<"Apakah Anda Ingin Memasukan Data Lagi? [Y/T] :";cin>>jawab;
}
while ((jawab=='Y')||(jawab=='y'));
cout<<"Isi Stack Sebelum POP :"<<endl;
for(i=n-1;i>=top2;i--)
{
cout<<"|";
cout<<S[i]<<"| ";
}
cout<<endl;
cout<<"Apakah anda ingin kembalik ke menu? [Y/T] :";cin>>jawab1;
if ((jawab1=='Y')||(jawab1=='y'))
{
goto menu;
} else
break;
case 3 :
pop1();
break;
case 4 :
pop2();
break;
case 5 :
exit;
}
getch();
}