まず、以下に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++でのダブルリンクドリストの基本的な実装と使用方法の説明です。これを参考にして、さまざまなアプリケーションでダブルリンクドリストを活用してみてください。