Pages

Senin, 13 Desember 2010

Praktikum 7 Struktur Data

#include <cstdlib>
#include<iostream.h>
#define maks 5
#include<string.h>

   class Stack {
      friend ostream& operator<<(ostream&,const Stack&);
   public:
      Stack();
      int penuh(int);
      int kosong(int);
      void cetak();
      void push(char);
      char pop();
   private:
      char A[maks];
      int banyak;
  };
  ostream& operator <<(ostream& out,con
st Stack& s)
    {
           cout<<"\n Isi stack: ";
    for(int i=0;i<s.banyak;i++)
     out<<s.A[i]<<" ";
     }
Stack::Stack() {
   banyak =0;
   for(int i=0;i<maks;i++)
    A[i]='0';
   }
int Stack::penuh (int s)  {
   return s ==maks ? 1:0; }

int Stack::kosong(int s) {
   return s ==0 ? 1:0; }
void Stack::cetak() {
    cout<<"\nIsi stack : ";
    for (int i=0;i<banyak;i++)
    cout<<A[i]<<" "; }

void Stack::push (char x)
 { cout<<"\nElemen masuk : "<< x;
    if (penuh(banyak))cout<< "Stack 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 Stack::pop()  {
     cout<<"\npop Stack,elemen yg di-pop : "<<A[0];
     char temp=A[0];
     for (int i=0;i< banyak;i++) A[i]=A[i+1];
     A[banyak]='0';
     banyak--;
     return temp;
   }

int main () {
    Stack stack;
    for (char c='a';c<'d';c++) {
        stack.push(c);
        }
    char p=stack.pop();
    stack.cetak();
    cout<<"\n\nCetak pakai overloading : "<<stack;


  system("pause");
    }

Tidak ada komentar:

Posting Komentar

 

SMS FREE

Online

JNE:

Visitor

Flag Counter