#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");
}
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar