Bạn đang có lẽ đúng, và nó chỉ là không phải là rất hữu ích.
Có nhiều cách sử dụng danh sách được liên kết trong lý thuyết (đáng chú ý là các liên kết khiêu vũ). Nhưng hầu hết trong số họ liên quan đến việc lưu trữ và sao chép các trình lặp của nó ở nơi khác, truy cập nội dung theo nhiều hơn hai hướng, hoặc tách và hợp nhất các danh sách. SplDoublyLinkedList dường như không có.
Nếu không phải là thuật toán, một lần sử dụng là cho phép đối tượng xóa tham chiếu của chính nó trong một danh sách trong thời gian không đổi, giải phóng bộ nhớ và không xáo trộn danh sách (băm hoặc hoán đổi mục cuối cùng) sau khi chèn hoặc xóa. Nhưng điều này đòi hỏi phải lưu trữ một iterator của danh sách trong các đối tượng đó.
Nếu không có các chức năng đó, chúng sẽ hoạt động giống như hai lần bị khử. Nếu bạn chỉ cần truy cập các mục bằng cách sử dụng trình lặp, chúng giống như hai ngăn xếp. Một cách tốt hơn trong các trường hợp đơn giản luồng đơn, chặn không được gói trong một lớp, chỉ sử dụng hai ngăn xếp (có thể là mảng cố định hoặc cả hai đầu của cùng một mảng). Pop từ một ngăn xếp và đẩy nó đến một nơi khác bất cứ khi nào bạn muốn iterator để di chuyển, và trên cùng của một ngăn xếp là mục hiện tại. Nếu bạn cũng cần phải truy cập vào đầu và đuôi, bạn sẽ cần phải thay thế các ngăn xếp với deques. Tuy nhiên, nếu bạn muốn thực hiện các ngăn xếp hoặc tự xóa bản thân mà không biết kích thước tối đa hoặc thậm chí phân bổ các nút của danh sách được liên kết bình thường (bằng ngôn ngữ không có thư viện như trong PHP), cách tốt nhất là chuỗi một số mảng cố định cùng nhau, sử dụng danh sách được liên kết kép mà không có các tính năng đó. Bằng cách nào đó bạn vẫn sẽ cần nó.
Tài liệu PHP chính nó, giống như Java, cho thấy chúng được cho là chỉ là một deque hỗ trợ một số tính năng kỳ lạ, thậm chí không hai deques (tôi nghĩ). Không sử dụng chúng nếu bạn thực sự cần danh sách liên kết gấp đôi.
Đây là câu trả lời hay nhất ở đây và một câu trả lời hay nhất để hiểu mục đích của các cấu trúc dữ liệu này. Tuy nhiên, mọi thứ không đơn giản như câu trả lời này ngụ ý. Chỉ dựa trên khái niệm về danh sách liên kết đôi là gì và bảng băm là gì (mảng được triển khai bằng PHP) như thế nào, người ta mong đợi rằng một danh sách liên kết đôi có thể tiết kiệm rất nhiều bộ nhớ trên một mảng. Tuy nhiên trong thử nghiệm của tôi, tôi hết bộ nhớ tại chỗ với một trong hai. Điều này khiến tôi tin rằng các danh sách liên kết kép được thực hiện rất ngu xuẩn trong PHP. –
Tôi cũng đã cố gắng tạo lớp danh sách liên kết đơn lẻ của riêng mình với một con mắt quan tâm để bảo tồn bộ nhớ. Bằng cách nào đó tôi đang hết bộ nhớ tại cùng một vị trí như thể tôi sử dụng một mảng PHP bình thường, rất kỳ lạ. Điều này dẫn tôi đến việc nghi ngờ nội bộ của PHP sử dụng mảng PHP ở những nơi không mong muốn. Nó chỉ là một đoán, nhưng không chắc chắn những gì khác để suy nghĩ. BTW Tôi đang sử dụng PHP 5.3.2, vì vậy hy vọng các phiên bản mới hơn sẽ tốt hơn về điều này, nhưng tôi không biết. Vấn đề là, nếu bạn định sử dụng một cấu trúc dữ liệu khác với mảng PHP vì lý do hiệu suất, hãy chắc chắn rằng bạn đo hiệu suất để đảm bảo nó có hiệu quả. –