Keterangan : program menerima masukan maksimal 10 angka. ketika angka yang dimasukkan <60, program akan menampilkan semua angka yang telah diinput, serta angka yang keluar/diambil. Jika angka diinput 999, program langsung break dan selesai.
#include <constrea>
#include<conio.h>
#define n 10
int S[n],X;
int *top, *dasar, *puncak,*z;
void awal(){
top=&S[-1];
dasar=&S[-1];
puncak=&S[n-1];
z=&S[-1];
}
int BisaDiisi(){
if(top < puncak)
return 1;
else
return 0;
}
int AdaIsinya(){
if(top > dasar)
return 1;
else
return 0;
}
void push(int x){
top=top+1;
*top=x;
}
void pop(){
X=*top;
top=top-1;
}
void tampil(){
while(z!=top){
z++;
cout<<*z<<" ";
}
z=&S[-1];
}
void main(){
awal();
cout<<"bilangan pertama = ";
cin>>X;
while(X!=999){
if(X>=60){
//push
if(BisaDiisi()){
push(X);
}
else{
cout<<"stack penuh\ndata "<<X<<" tidak berhasil dimasukkan"<<endl;
break;
}
}
else{
//pop
if(AdaIsinya()){
cout<<"**************************************************"<<endl;
cout<<"data total : ";tampil();
cout<<"\n**************************************************"<<endl;
pop();
cout<<"--------------------------------------------------"<<endl;
cout<<"angka yang diambil : "<<X<<endl;
cout<<"--------------------------------------------------"<<endl;
cout<<"data tinggal : "; tampil();
cout<<"\n=================================================="<<endl;
cout<<endl;
}
else{
cout<<"data tidak ada"<<endl;
break;
}
}
cout<<"bilangan selanjutnya = ";
cin>>X;
}
cout<<"selesai"<<endl;
getch();
}
No comments:
Post a Comment