私は再帰的なバックトラックを使用して迷路生成アルゴリズムを作成しています。私は行列を使ってスタック内を訪れるポイントを追跡します。この行列には、x座標用とy座標用の2つの列があります。問題は、私のプログラムは小さな迷路のために働くが、大きな迷路のために私の計算機はメモリ不足になるということである。私は、スタックを実装するためのメモリー集約的な方法が少ないかどうか疑問に思っていました。私は可能な方法として文字列を使用することを考えています。私はti-84 CSEを使っています。ti-basicで低momoryスタックを実装する方法
0
A
答えて
3
あなたのスタックはおそらくリストを使って実装されるべきです。デモンストレーションの目的でL1を使用します。スタックは、ラスト・イン・ファーストアウトのデータ構造です。 リストの要素は、Xは、あなたが欲しいアイテムです
L1(X)
を使用してアクセスできます。これは、まず最初にL1(1)(リストの始め、1番目のアイテム)に移動し、その後でリストの最後のアイテムから出て行く必要があることを意味します。リストにあるどのように多くのアイテムを見つける(したがって、N番目の項目が最後で見つける)
dim(L1)
を使用するにはこれがありますどのように多くの項目の数を与えます。変数に格納する代わりに、リスト内の最後の項目に常にアクセスするために使用することができます。
L1(dim(L1))->M
//this addresses the item of L1 at dim(L1), meaning the last item
ここで、Mは最後の項目の値を持ちます。これが最初の部分です。 (あなたがそれをポップするので)を次に、最後の項目を破壊するために、次の操作を行います。
dim(L1)-1->dim(L1)
だから一緒にそれをすべて入れて、あなたの「ポップ」のコードは次のようになります。今
If dim(L1)>0
Then
// It checks if L1 has an element to pop off in the first place
L1(dim(L1))->M
dim(L1)-1->dim(L1)
End
、Mは意志最後の項目の値を持ち、最後の項目は破棄されます。今、プッシュコードに。プッシュするには、あなたの番号を古い最後の番号よりも新しい新しいスロットに入れなければなりません。基本的には、最後に新しい項目を入れて入力する必要があります。幸いにも、これはTI-Basicでは非常に簡単です。
If dim(L1)<99
// It checks if L1 has less than the maximum number of elements,
// which is 99.
M->L1(dim(L1)+1)
そして、あなたはX/Yは、あなたのスタックと連携保存するつもりなら、私はこのような形式をお勧めします::あなたの「プッシュ」のコードは次のようになり
X + .01Y -> M
//X=3, Y = 15
// This would make M be 3.15
とTOをこれらを別々の2つの別々の座標に分けてください:
int(M)->X
// The integer value of M is 3, which is what X was earlier
100*fPart(M)->Y
// The fraction part of M was .15. Multiply that by 100 to get 15,
// which is what Y was earlier
関連する問題
- 1. スタック実装Trollfaceの方法
- 2. Javaでスタックとキューを実装する方法は?
- 3. スタックの実装
- 4. スタックと単一リンクリストを実装する最良の方法
- 5. Javaでのスタック実装
- 6. Python TCPスタック実装
- 7. System.Threading.Timer低レベルの実装
- 8. 平均スタック2の実装
- 9. 汎用スタックの実装
- 10. 奇妙なスタック実装エラー
- 11. スタックを実装する方法<E> with <T extends comparable <T>>?
- 12. スタックにいくつかの関数を実装する方法は?
- 13. リンクリストによるスタックの実装
- 14. Pro * Cの実装/保守コストを低く抑える方法は?
- 15. なぜスタックとキューを実装するのですかjava
- 16. Python 2.7でフリーリスト機能を持つスタックを実装する
- 17. Pythonでtimerを実装する方法
- 18. xybubblerendererでcategoryplotを実装する方法
- 19. Javaでゲートウェイを実装する方法
- 20. angularjsでナビゲーションバーを実装する方法
- 21. DataTableでLinqを実装する方法
- 22. JavaScriptでマウスドラッグを実装する方法
- 23. JavaScriptでOAuthを実装する方法
- 24. PostgreSQLでACLを実装する方法
- 25. HTML5でDRMを実装する方法
- 26. Mono.CecilでIsAssignableFromを実装する方法
- 27. シェルスクリプトでシングルトンを実装する方法
- 28. MVCでアイデンティティロールマネージャを実装する方法
- 29. リサイクラービューでエンドレススクロールを実装する方法
- 30. Androidでバックグラウンドタスクを実装する方法
魚に教えるだけでなく、人間に魚を与えることもできます。 –
@EastonBornemeierありがとう!私はTI-Basicが最初に正しく説明されていない限り混乱のように見えることがあるので、完全に説明しました。 –
@Stephen Pありがとう!実際には、2つの座標を1つの数字に結合するのはきれいでした。 – Meepo