私は、13,000のサイズのスタック実装を取得してリンクリストにするというプログラミング割り当てに取り組んでいます。ガイドは基本的に、リンクされたリスト(IEテールがスタックの先頭になる)を順番にスキャンすることによってスタックが満たされ、スタックを使用してリンクリストを再作成したいと考えています。トリックは、再帰的なメソッドを使用して行う必要があります。このスタッククラスの唯一のメソッドは、pop(先頭の要素を戻して削除する)とisEmpty(スタックが空であるかどうかを指示する)です。私は仕事を終わらせるコードを持っていますが、Javaスタックのサイズを増やす必要があります(それ以外の場合はStackOverflowErrorを取得します)。これは許されないようです。スタックを再帰的にリンクリストに変換する
誰もが、私はおそらくこれをJavaスタックのサイズを増やさずに動作させる方法を知っていると言われている。
スタックは静的フィールドで、ラベルはSです。ヘッドはリンクリストの最初のノードでなければなりません。steperは他のすべてのステップを作成するためのノードです。ここで
は、私が現在持っているコードです:
public static void stackToList()
{
int x = 0;
if(S.isEmpty())
{
return;
}
x = S.pop();
stackToList();
if (head == null)
{
head = new ListNode(x, null);
steper = head;
}
else
{
steper.next = new ListNode(x, null);
steper = steper.next;
}
}
先に任意の助けのための時間のありがとう。
好奇心の高まりから、スタックには何がありますか? – leigero
ちょうどintの多く。それまでのところ空想はありません。 – xtruexwolfx
ちょうど明確にするために、あなたが "スタックサイズ"と言うときは再帰呼び出し中のJavaコールスタックを参照していますか?あなたがそれを読んでいるならば、あなたはスタック 'S'が増加しないので! – EvenPrime