Question
In the push(int x) function of Stack.java, by default, we never check if the stack is already full. If we insert an element into a
In the push(int x) function of Stack.java, by default, we never check if the stack is already full. If we insert an element into a full stack, we should get an error. Implement the capacity check feature for push(int x). (Hint: Use System.err.println() to print the error message.)
______________________________________________
package ds;
public class Stack {
public int size;
public int top;
public int[] array;
public Stack() {
size = 0;
top = -1;
array = null;
}
public Stack(int _size) {
size = _size;
top = -1;
array = new int[size];
}
/* * * Implement the Stack-Empty(S) function * */
public boolean empty() { if (top == -1) return true; else return false; }
/* * * Implement the Push(S, x) function * */
public void push(int x) {
if (top != array.length - 1) { top = top + 1;
array[top] = x; } else { System.out.printf("Could not insert data, Stack is full, top is %d. ", top); }
}
/* * * Implement the Pop(S) function * * Return -1 if the stack is empty * */
public int pop() {
int data = -1;
if (!empty()) { data = array[top]; top = top - 1; return data; } else { System.out.println(" Stack is empty. "); } return data;
}
/* * * Convert stack to string in the format of #size, [#elements] * */
public String toString() {
String str;
str = size + ", [";
for (int i = 0; i <= top; i++)
str += array[i] + ", ";
str += "]";
return str;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack s;
s = new Stack(10);
for (int i = 0; i < 5; i++)
s.push(i);
System.out.println(s.toString());
for (int i = 0; i < 2; i++)
s.pop();
System.out.println(s.toString());
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started