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.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.