まず、ダブルリンクリストのノードを表すクラスを作成します。各ノードはデータと前後のポインタを持つ必要があります。以下に、基本的なダブルリンクリストのノードクラスの例を示します:
class Node {
public:
int data;
Node* prev;
Node* next;
};
次に、リスト全体を管理するクラスを作成します。このクラスには、リストの先頭と末尾のポインタが含まれます。以下に、ダブルリンクリストを管理するクラスの例を示します:
class DoublyLinkedList {
private:
Node* head;
Node* tail;
public:
DoublyLinkedList() {
head = nullptr;
tail = nullptr;
}
// 以下にリスト操作のメソッドを実装します (例: ノードの挿入、削除、検索など)
};
このクラスには、リストに対してさまざまな操作を実装するメソッドを追加することができます。例えば、新しいノードをリストの先頭に挿入するメソッドを以下に示します:
void DoublyLinkedList::insertAtHead(int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->prev = nullptr;
newNode->next = head;
if (head != nullptr) {
head->prev = newNode;
} else {
tail = newNode;
}
head = newNode;
}
他の基本的なリスト操作としては、ノードの削除、特定の値を持つノードの検索、リストの表示などがあります。これらの操作を実装するためには、適切なポインタ操作と条件分岐を使用する必要があります。
このように、C++でダブルリンクリストを実装し、リスト操作を行うことができます。これにより、データの挿入、削除、検索などの操作が効率的に行えるようになります。