Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

given DozenStackAbstract.java public abstract class DozenStackAbstract{ private

ID: 3881888 • Letter: G

Question

given

DozenStackAbstract.java

public abstract class DozenStackAbstract{

private Character[] c;
private int total;
public DozenStackAbstract(){
c=new Character[12];
total=0;
}
public abstract void push(char c);
public boolean isEmpty(){
return total==0;
}
public boolean isFull(){
return total==12;
}
public void pop(){
if(total>0)
total--;
}

public Character top(){
if(total>0) return c[total-1];
else return null;
}
public void updateTotal(int num){
total +=num;
}
public Character[] getData(){
return c;
}
public int size(){
return total;
}

}

Explanation / Answer

Hi... I have written push method for the stack. Please check below.

DozenStackAbstract.java

public abstract class DozenStackAbstract{

private Character[] c;

private int total;

public DozenStackAbstract(){

c=new Character[12];

total=0;

}

public abstract void push(char c);

public boolean isEmpty(){

return total==0;

}

public boolean isFull(){

return total==12;

}

public void pop(){

if(total>0)

total--;

}

public Character top(){

if(total>0) return c[total-1];

else return null;

}

public void updateTotal(int num){

total +=num;

}

public Character[] getData(){

return c;

}

public int size(){

return total;

}

public void updateArray(Character[] c22){

this.c = c22;

}

}

DozenStack.java

public class DozenStack extends DozenStackAbstract {

public void push(char c) {

// TODO Auto-generated method stub

Character[] c1=super.getData();

if(super.isFull()){

Character[] c22 = new Character[12];

for(int i=0;i<12;i++){

if(i==0){

c22[i]=c;

}else{

c22[i]=c1[i];

}

}

super.updateArray(c22);

}else{

int tot = super.size();

c1[tot+1] = c;

super.updateTotal(1);

}

}

}

Please check the code and let me know any issues. Thank you. All the best.