C++でのダブルリンクドリストの実装と使用方法


まず、以下にC++でのダブルリンクドリストの基本的な実装例を示します。

#include <iostream>
struct Node {
    int data;
    Node* prev;
    Node* next;
};
class DoublyLinkedList {
private:
    Node* head;
    Node* tail;
public:
    DoublyLinkedList() {
        head = nullptr;
        tail = nullptr;
    }
    void insert(int value) {
        Node* newNode = new Node;
        newNode->data = value;
        newNode->prev = nullptr;
        newNode->next = nullptr;
        if (head == nullptr) {
            // リストが空の場合
            head = newNode;
            tail = newNode;
        } else {
            // リストに既に要素がある場合
            tail->next = newNode;
            newNode->prev = tail;
            tail = newNode;
        }
    }
    void display() {
        Node* current = head;
        while (current != nullptr) {
            std::cout << current->data << " ";
            current = current->next;
        }
        std::cout << std::endl;
    }
// 他の必要なメソッドや機能を追加することもできます
};
int main() {
    DoublyLinkedList myList;
    myList.insert(10);
    myList.insert(20);
    myList.insert(30);
    myList.display(); // 出力: 10 20 30
    return 0;
}

上記のコードでは、Nodeという構造体を定義し、DoublyLinkedListクラスでダブルリンクドリストを管理しています。DoublyLinkedListクラスには、要素の追加と表示のためのメソッドが含まれています。

insertメソッドは、新しいノードを作成し、リストの末尾に追加します。displayメソッドは、リストの要素を順番に表示します。

この実装例を基に、様々な操作や機能を追加することができます。例えば、要素の削除や挿入、特定の値の検索などが可能です。

以上が、C++でのダブルリンクドリストの基本的な実装と使用方法の説明です。これを参考にして、さまざまなアプリケーションでダブルリンクドリストを活用してみてください。