package mardaus.blatt13;

class Stack{
	//default Konstruktor
	public Stack(){
		keller = new char[1];
		keller[0]='#';
		kopf = 0;
	}
	
	public boolean empty(){
		if (kopf==0 && keller[kopf]=='#') return true;
		else return false;
	}
	
	public void push(char c){
		if (kopf == keller.length){
			char[] backup = new char[keller.length];
			for(int i=0;i<keller.length;i++)
				backup[i]=keller[i];
			
			keller = new char[keller.length+1];
			for(int i=0;i<backup.length;i++)
				keller[i]=backup[i];
		}
		keller[kopf] = c;
		kopf++;
		
	}
	
	public char pop(){
		if (this.empty()) return '@';
		else {
			kopf--;
			char tmp = keller[kopf];
			keller[kopf]='#';
			return tmp;
		}
	}
	
	public void print(){
		for(int i=0;i<keller.length;i++)
			System.out.print(keller[i]);
		System.out.println();
	}
	
	private char[] keller;
	private int kopf;
}
