我有一个关于数据结构和算法的编程任务,其中一项任务是
“在运行时提示用户字符栈(M)的大小,并在系统栈中为用户栈动态分配空间。你特别不能使用“new,malloc”或任何其他操作符,它在任何语言的堆。 ”
我是数据结构的新手,想知道我编写的以下代码是否符合要求?
代码:
public class DynamicStack
{
private char[] array;
private int top = 0; // Array counter
private int size; // Array size
private final double CAPACITY_CHANGE_RATE = 1.3; // Stack resize ratio
....
All other methods: push(), pop(), peek(), and etc.
....
private void ensureCapacity()
{
if (isFull()) {
size = (int) Math.ceil(size * CAPACITY_CHANGE_RATE);
char[] oldArray = array;
array = new char[size];
System.arraycopy(oldArray, 0, array, 0, oldArray.length);
}
}
}
从技术上讲,我在非静态方法中使用的任何东西都必须分配到新的系统堆栈中,而不是进入堆中,对吧?