nsmutablearraysを使用せずに汎用スタックを実装するにはどうすればよいですか?nsmutablearraysのないobjective-cの汎用スタック?
-3
A
答えて
1
:
@interface Stack {
id *objects;
int allocatedSize;
}
-(void) push:(id) value;
-(id) peek;
-(id) pop;
@end
@implementation Stack
-(void) push:(id) value {
objects = realloc(objects, ++allocatedSize * sizeof id);
objects[allocatedSize - 1] = value;
}
-(id) pop
{
id temp = objects[--allocatedSize];
objects = realloc(objects, allocatedSize * sizeof id);
return temp;
}
-(id) peek
{
return objects[allocatedSize - 1];
}
@end
MAJOR NOTICE:
次のコードは、リンクされたリストに基づくスタックの説明図である このコードは、少なくともBUGGYです。 ARCとmallocはうまく動作しませんので、値を設定する前にメモリをクリアするように注意してください。また、私はモバイルサファリでこれを書いたので、エラーチェックを追加してください。空想のコードチェックに時間がかかりませんでした。
0
arrays(NSMutableArray
を使用しない場合はC配列)を使用してスタックを実装できます。しかし、これはNSMutableArrayを使用することとはそれほど違いはないと思います。
アレイを完全に回避するには、linked listsを使用してスタックを実装できます。私が思うだろう。このような何か
- (void)push:(id)item
{
Node *newHead = [[Node alloc] init];
newHead.data = item;
newHead.next = self.head;
self.head = newHead;
}
- (id)pop
{
Node *oldHead = head;
self.head = self.head.next;
return oldHead.data;
}
関連する問題
- 1. 汎用スタックの実装
- 2. NSMutableArraysのNSMutableArray、addObjectの問題
- 3. Objective C NSCFString NSMutableArraysでのリーク
- 4. ObjectiveCのAMF0パーサー
- 5. Entity Framework:IDのない汎用比較型?
- 6. ObjectiveC/iPhoneのTwitPic APIを使用
- 7. ObjectiveCのJSON解析
- 8. NumberFormatter - ObjectiveC
- 9. 汎用タイプの汎用リストの作成
- 10. 現在の小さなModalVIewController ObjectiveC
- 11. Javaの汎用、汎用関数
- 12. ObjectiveCのJava同等のデコード
- 13. ObjectiveC blocks Java equivalent
- 14. iOS ObjectiveC Webservice
- 15. 糸くずのエラーobjectiveC
- 16. ObjectiveCの静的変数
- 17. @Transactionalで動作しない汎用オートワイヤリング
- 18. 異なる汎用パラメータを持つC#汎用戻り型
- 19. 汎用ポインタが汎用参照によってキャプチャされないのはなぜですか?
- 20. NSMutableArraysをNSUserDefaultsに保存するには
- 21. NSMutableArraysをpListに保存する
- 22. 滑らかな汎用テーブル
- 23. サークル異なるボタンを使うObjectiveC
- 24. スタックを使用しないメモリ管理?
- 25. IOSチャート - スタック・バー・チャートがスタックしない
- 26. java.util.Map.get(...)が汎用ではないのはなぜですか?
- 27. 汎用クラスのコンパイルエラー
- 28. VHDLの汎用パッケージ
- 29. 汎用パラメータスカラのアクセスタイプパラメータ
- 30. クラウドコンピューティングプラットフォームの汎用ソフトウェアアーキテクチャ
これまでに試してみたことや気にしていたことは何ですか? –
質問は本当にあります: "あなたはnsmutablearraysを使わずに汎用スタックをどのように実装しますか?"それともあなたの誰かがあなたのためにすべての仕事をしたのですか?少し努力してください。 –
これにNSMutableArrayを使用すると何が問題になりますか? –