twitter
    ind me at facebook :)

Saturday 7 May 2011

Stuktur data - Singe Stack dengan Pointer [c++]

contoh Program single stack dengan variable pointer 
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