あなたはおそらく正しいです、そしてそれはあまり役に立ちません。
リンクされたリストには、理論的には多くの用途があります (特にダンシング リンク)。しかし、それらのほとんどは、イテレータを別の場所に保存して複製するか、2 つ以上の方向からコンテンツにアクセスするか、リストを分割してマージするかのいずれかを伴います。SplDoubleLinkedList にはそれらがないように見えました。
アルゴリズムではない場合、1 つの使用法として、オブジェクトが特定のリスト内の自身の参照を一定時間内に削除できるようにし、そのメモリを解放し、挿入または削除後にリストをシャッフルすることなく (最後の項目とのハッシュまたはスワップによって) 使用することができます。ただし、これには、これらのオブジェクトにリストの反復子を格納する必要があります。
これらの機能がなければ、2 つの両端キューのように動作します。イテレータを使用してアイテムにアクセスするだけでよい場合、アイテムは 2 つのスタックのようになります。シングル スレッドの単純なケースで、まだクラスにラップされていない場合を除いて、1 つのより良い方法は、2 つのスタック (おそらく固定配列、または同じ配列の両端) を使用することです。イテレータを移動したいときはいつでも、あるスタックからポップして別のスタックにプッシュします。1 つのスタックの一番上が現在のアイテムです。ヘッドとテールにもアクセスする必要がある場合は、スタックを両端キューに置き換える必要があります。
しかし、最大サイズを知らずにスタックまたは deques 自体を実装したい場合、または通常のリンクされたリストのノードを割り当てたい場合 (PHP のようなライブラリのない言語で)、良い方法は doublely を使用していくつかの固定配列をチェーンすることです。それらの機能のないリンクされたリスト。どういうわけか、あなたはまだそれを必要とします。
Java ドキュメントと同様に、PHP ドキュメント自体は、2 つの deque ではなく、いくつかの奇妙な機能をサポートする単なる deque であると示唆しています (私はそう思います)。二重にリンクされたリストが本当に必要な場合は、それらを使用しないでください。