Minggu, 31 Oktober 2010

Tugas sData queue

Nama : Desta Arianti
NIM : 09018291




#include <iostream>
#include <cstdlib>
#define maks 7
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();
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 <<"\nElemen:"<<x<<"Masukkan Antrian";
      if (penuh(banyak)) cout <<"queue penuh";
      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 <<"\nDequeue elemen-->" <<temp;
     A[banyak]='0';
     return temp;
     }
        
    
int main()
{
    Queue q;
    for (char c='a'; c<'f'; c++)
    {
        q.enqueue(c);
        cout <<q;
        }
    char p=q.dequeue();
    q.cetak();
    cout <<"\n\nCetak pakai overloading:" <<q;
    cout<<"\n";
  
    system("PAUSE");
    return EXIT_SUCCESS;
}


Tidak ada komentar:

Posting Komentar