Friday, 31 December 2010

SIMULASI QUEUE DENGAN ARRAY

prak 8

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

using namespace std;

class Queue{
      friend ostream& operator<<(ostream&,const Queue&);
public:
       Queue();
       int penuh(int);
       int kosong(int);
       void cetak();
       void enqueue(char);
       char dequeue();
       void urik();
private:
        char A[maks];
        int banyak;
};

ostream& operator<<(ostream& out,const Queue& s)
{        cout<<"\nIsi Queue:";
         for(int i=0;i<s.banyak;i++)
         out<<s.A[i]<<" ";
}

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

int Queue::penuh(int s)
{   return s==maks?1:0;}

int Queue::kosong(int s)
{   return s==0?1:0;}

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

void Queue::enqueue(char x)
{
     cout<<"\n\nElemen:"<<x<<" masuk antrian";
     if(penuh(banyak))cout<<" \nmaaf,queue penuh!!\n"<<x<<" tidak bisa masuk antrian";
     else if(A[0]=='0'){
          A[0]=x;
          banyak++;
          }
          else{
               for(int i=banyak;i>=0;i--)
               A[i+1]=A[i];
               A[0]=x;
               banyak++;
               }
               }
        
char Queue::dequeue()
{
     char temp=A[--banyak];
     cout<<"\n\nDequeue elemen--> "<<temp;
     A[banyak]='0';
     return temp;
}

void Queue::urik()
{
     int n=maks;
     char temp=A[0];
     for(int i=0;i<n;i++)
     A[i]=A[i+1];
     A[n-1]=temp;
   
}

int main(int argc, char *argv[])
{
    Queue q;
    int x=1;
    for(char c='a';c<'h';c++){
             q.enqueue(c);
             cout<<q;
           
             }
             char p=q.dequeue();
             q.cetak();
             char d='h';
             q.enqueue(d);
             q.urik();
             cout<<q;
             cout<<"\n\nCetak pakai overloading"<<q;
             char r=q.dequeue();
             q.cetak();
        
             cout<<"\n\nCetak pakai overloading"<<q;
          
             cout<<endl<<endl;;
    system("PAUSE");
    return EXIT_SUCCESS;
}

No comments:

Post a Comment