free registration html

PERTEMUAN 8 FREE REGISTRATION

Latihan atau tugas Free Registration NAMA : Tgl Lahir: Alamat : Kota : Pekerjaan: Programer Data ANALISIS IT Su...

Selasa, 01 Februari 2022

push dan pop

 #include<iostream>

#include<conio.h>

#include<stdlib.h>

#define n 10

using namespace std;

char P[]={'>',' ',' ',' ',' ',' '};

int S[n],mov[2],X,Y,pil=0;

int *top1,*top2,*dasar1,*dasar2,*helpI;

//utama

void awal(){

 top1=&S[-1];

   top2=&S[n];

   dasar1=&S[-1];

   dasar2=&S[n];

   helpI=&S[-1];

}

void push1(int x){

 top1=top1+1;

   *top1=x;

}

void push2(int y){

 top2=top2-1;

   *top2=y;

}

void pop1(){

 X=*top1;

   *top1=0;

   top1=top1-1;

}

void pop2(){

 Y=*top2;

   *top2=0;

   top2=top2+1;

}

int BisaDiisi(int k){

 if(top2-top1>k)

    return 1;

   else

    return 0;

}

int BisaDiambil1(){

 if(top1>dasar1)

    return 1;

   else

    return 0;

}

int BisaDiambil2(){

 if(top2<dasar2)

    return 1;

   else

    return 0;

}

void tampil(){

 cout<<"\n================ data menjadi ==================="<<endl;

   while(helpI!=(dasar2-1)){

    helpI++;

      cout<<*helpI<<" ";

   }

   cout<<"\n======================================================"<<endl;

   helpI=&S[-1];

}

//tambahan

void tampilMenu(){

    system("cls");

    cout<<"========================================================"<<endl;

    cout<<"1. Push 1"<<endl;

    cout<<"2. Push 2"<<endl;

    cout<<"3. Pop 1"<<endl;

    cout<<"4. Pop 2"<<endl;

    cout<<"========================================================="<<endl;

      cout<<"pilihan anda : ";cin>>pil;


}



main(){

 awal();

   do{

  tampilMenu();

      cout<<endl;

  //cout<<"nilai pil = "<<pil<<endl;

    switch(pil){

     case 1: if(BisaDiisi(1)){

           cout<<"masukkan bilangan = ";

                  cin>>X;

           push1(X);

         }

                else{

                cout<<"maaf tidak ada tempat untuk push";

                }break;

      case 2: if(BisaDiisi(1)){

           cout<<"masukkan bilangan = ";

                  cin>>Y;

           push2(Y);

          }

               else{

                 cout<<"maaf tidak ada tempat untuk push";

               }break;

      case 3: if(BisaDiambil1()){

          pop1();

                   cout<<"data yang diambil = "<<X<<endl;

          }

                else{

                cout<<"maaf stack 1 tidak ada isinya"<<endl;

                }break;

      case 4: if(BisaDiambil2()){

           pop2();

                  cout<<"angka yang diambil = "<<Y<<endl;

          }

               else{

                 cout<<"maaf stack 2 tidak ada isinya"<<endl;

               }break;

   }

    tampil();

      cout<<"\nenter untuk mengulang dan esc untuk keluar !";

      do{

       mov[0]=getch();

         if(mov[0]==27)

          exit(0);

      }while(mov[0]!=13);

   }while(mov[0]==13);

 getch();


}

Tidak ada komentar:

Posting Komentar