データ構造とアルゴリズムに関するプログラミングの割り当てがあり、タスクの 1 つは
「実行時に文字スタック (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);
}
}
}
技術的には、非静的メソッド内で使用するものはすべて、新しいシステム スタックに割り当てる必要があり、ヒープには入れませんよね?