Praktikum 7

#include
#define maks 6
using namespace std;
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, const Stack& s)
{
cout << "\nIsi 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 <=0;i–)
A[i+1]=A[i];
A[0]=x;
banyak++;}
}
char Stack::pop()
{ cout <<"\nPop stack, elemen yang 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(int argc, char *argv[])
{
Stack stack;
stack.push(')');
stack.push(')');
stack.push('b');
stack.push('+');
stack.push('a');
stack.push('(');
stack.cetak();
for (char c='a';c<'d';c++){
stack.push(c);
stack.cetak();
}
char p = stack.pop();
stack.cetak();
cout << "\n\nCetak pakai overloading : " << stack;
system("PAUSE");
return EXIT_SUCCESS;
}

Tidak ada komentar:

Posting Komentar