package org.matheclipse.core.eval.util;
import org.matheclipse.core.basic.Alloc;
public class DoubleStack {
private double[] stack;
int top;
public DoubleStack(final int initialCapacity) {
stack = Alloc.vector(initialCapacity);
top = -1;
}
public void ensureCapacity(final int minCapacity) {
final int oldCapacity = stack.length;
if (minCapacity > oldCapacity) {
final double oldData[] = stack;
int newCapacity = (oldCapacity * 3) / 2 + 1;
if (newCapacity < minCapacity) {
newCapacity = minCapacity;
}
stack = Alloc.vector(newCapacity);
System.arraycopy(oldData, 0, stack, 0, oldCapacity);
}
}
final public boolean isEmpty() {
return top < 0;
}
final public double peek() {
return stack[top];
}
final public double push(final double item) {
stack[++top] = item;
return item;
}
final public double pop() {
return stack[top--];
}
}
Ads help maintain this website.