Sabtu, 01 Januari 2011

prak 9

#include <cstdlib>
#include <iostream>
#define maks 5

using namespace std;

class Que{
      friend ostream& operator<<(ostream&, const Que&);
public:
       Que();
       int penuh(int);
       int kosong(int);
       void cetak();
       void geser_kanan();
       void enque(char);
       char deque();
private:
        char Q[maks];
        int banyak;
};

ostream& operator<<(ostream& out, const Que& x){
         out<<"\nIsi queue sebanyak : "<<x.banyak<<"\nyaitu : ";
         for(int i=x.banyak-1;i>=0;i--)
         out<<x.Q[i]<<" ";
         cout<<endl;
         cout<<endl;
}

Que::Que(){
           banyak=0;
           for(int i=0;i<maks;i++)
           Q[i]='0';
}

int Que::penuh(int x){
    return x==maks ? 1 : 0;
}

int Que::kosong(int x){
    return x==0 ? 1 : 0;
}

void Que::cetak(){
     cout<<"\nIsi queue : ";
     for(int i=0;i<banyak;i++)
     cout<<Q[i]<<" ";
}

void Que::enque(char x){
     cout<<"Elemen : "<<x<<" masuk antrian";
     if(penuh(banyak)) cout<<"\n\nqueue penuh\n";
     else if(Q[0]=='0'){
          Q[0]=x;
          banyak++;
          }
     else{
          int temp=0;
          while(Q[temp]>x)temp++;
          if(banyak != temp)
                    for(int i=banyak;i>=temp;i--)
                            Q[i+1]=Q[i];
                    Q[temp]=x;
                    banyak++;
                    }
}

char Que::deque(){
     char temp=Q[--banyak];
     cout<<"\nDequeue elemen --> "<<temp;
     Q[banyak]='0';
     return temp;
}
int main(int argc, char *argv[])
{
    Que p;
    p.enque('b');
    cout<<p;
    p.enque('d');
    cout<<p;
    p.enque('c');
    cout<<"\nsisipkan c antara b d ";
    cout<<p;
    p.enque('e');
    cout<<"\nsisipkan e dibelakang d ";
    cout<<p;
    p.enque('a');
    cout<<"\n sisipkan a didepan b";
    cout<<p;
    char x=p.deque();
    cout<<"\n\nelemen yang di-dequeue "<<x<<endl;
    cout<<p;
    cout<<" degueue elemen \n";
    p.deque();
    cout<<" degueue elemen:\n";
    p.deque();
    cout<<" degueue elemen:\n";
    p.deque();
    cout<<" degueue elemen:\n";
    p.deque();
    cout<<p;
     system("PAUSE");
    return EXIT_SUCCESS;
}

Tidak ada komentar:

Posting Komentar

Entri Populer