2017-01-13 7 views
2

循環キューを実装するには、単一のリンクされたリストまたはダブルリンクされたリストまたは配列を使用しますか?円キューインプリメンテーションは、単一リンクリストとダブルリンクリストを使用しますか?

私は基本的に言っしようとしています私は

を理解しかし、あなたは、二重リンクリストを使用しないとき1つのリンクを介して循環キューを実装するには、yesポインタのためのリンクリストの固定サイズ以上のメモリ対

アレイリストとその逆?

+4

まだ試しましたか? –

+2

私はキャッシュミスを気にするので、私は配列を選択します。 (私はこれが主観的な議論につながると感じている)Tim Biegeleisenと合意すれば、あなたはそれを自分で実験することからほとんどの長所と短所を見つけ出すべきである。 IMHO、それはこの種のことを学ぶ最善の方法です。これはdownvoteの嵐の理由かもしれません。 – javaLover

+1

@Tim質問はコードを要求していないので、OPがこれまでに書いたことを尋ねるのは間違っています。 OPは、どのような種類のデータ構造が最も適切かを尋ねています。これは良い質問です。 – Raedwald

答えて

1

二重リンクリストでは、一重リンクリストと比較してバックリンクを維持するために余分なストレージとCPUが必要です。単一リンクリストでは、配列と比較してフォワードリンクを維持するために余分なストレージとCPUが必要です。リンクされたリストの多数の小さなオブジェクトには、配列と比較した場合、余分なストレージ(各オブジェクトにはストレージオーバーヘッドがあります)とガベージコレクタの処理が必要です。したがって、配列を使用すると、優れたパフォーマンスが得られます。

しかし、配列を使用するには、初心者のために複雑なロジックが必要になり、リニア配列を循環構造のように動作させる必要があります。したがって、効率の悪いリンクリスト実装を最初に作成し、それを効率的に変更することができます。

+0

また、配列には固定長の –

+0

があります。また、これらの、再帰的および線形の記述には2つのクラスのアルゴリズムがあります。私は最初に線形を試し、次に再帰的に試してみることをお勧めします。 – mawalker

+0

循環リンクを実装するためにシングルリンクリストでダブルリンクリストを使用するのはいつですか? 循環リンクを実装するために、ダブルリンクリスト上で単一リンクリストを使用するのはいつですか? 配列全体の同じ比較 – Abhishek