Single Stack
Yang dimaksud dengan single stack adlaah stack yang terdiri dari satu colecction. Bila stack tersebut menggunakan array satu dimensi, maka stack tersebut dapat diilustrasikan sebagai berikut :
contoh program single stack
keterangan : program menerima sampai 10 masukan. ketika dimasukkan angka <60 , maka program akan menampilkan semua angka, beserta angka yang diambil/keluar (angka terakhir)
#include <constrea>
int s[n], top; //global
char e;
void inisial ()
{
top = -1;
}
int bisadiisi ()
{
if (top <n-1)
{
return 1;
}
else
{
return 0;
}
}
int adaisinya ()
{
if (top>-1)
{
return 1;
}
else
{
return 0;
}
}
void push (int x)
{
top = top+1;
s[top]=x;
}
int pop ()
{
int x;
x= s[top];
top=top-1;
return (x);
}
void cetak ()
{
for (int i=0;i<=top;i++)
{
cout<<s[i]<<" ";
}
}
void main ()
{
do{
int x;
inisial ();
cout<<"==================SINGLE STACK==================="<<endl;
cout<<endl;
cout<<"\ndata pertama : ";cin>>x;
while (x!=999)
{
if (x>=60)
{
//push
if (bisadiisi ())
{
push (x);
}
else
{
cout<<"stack penuh";
cout<<x<<" tidak disimpan";
break;
}
}
else
{
//pop
if (adaisinya ())
{
cout<<"******************************************************"<<endl;
cout<<"data total : ";cetak ();
cout<<"\n******************************************************"<<endl;
cout<<endl;
x=pop ();
cout<<"-----------------------------------------------------"<<endl;
cout<<"angka yang diambil : ";
cout<<x<<endl;
cout<<"-----------------------------------------------------"<<endl;
cout<<"data tinggal : "; cetak();
cout<<endl;
cout<<"====================================================="<<endl;
cout<<endl;
}
else
{
cout<<"stack kosong";
break;
}
}
cout<<"angka selanjutnya : ";
cin>>x;
}
getch ();
cout<<"selesai";
cout<<endl;
cout<<"\nmau ulang?";cin>>e;
}
while (e=='y'||e=='Y');
}
No comments:
Post a Comment