我對數據結構&算法,和的任務之一就是動態分配空間
「提示字符堆棧的大小的用戶編程作業(M )在運行時,動態地爲系統中的堆棧中的用戶棧分配空間。您明確可以不使用「新,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);
}
}
}
從技術上講,無論我非靜態方法中使用已在新系統堆棧進行分配,並在堆不走,對不對?
由於您在array = new char [size];中使用'new'運算符,因此您的代碼不符合要求。 – Jesper 2013-03-12 13:07:24