-
ダブルリンクドリストの概要 ダブルリンクドリストは、要素(ノード)がデータとポインタ(前のノードと次のノードへの参照)からなる連結リストです。各要素は前の要素と次の要素との両方にリンクされており、要素の追加や削除が効率的に行えます。
-
ダブルリンクドリストの実装方法 以下に、C++でのダブルリンクドリストの実装例を示します。
#include <iostream>
struct Node {
int data;
Node* prev;
Node* next;
};
class DoublyLinkedList {
private:
Node* head;
public:
DoublyLinkedList() {
head = nullptr;
}
void addNode(int newData) {
Node* newNode = new Node();
newNode->data = newData;
newNode->prev = nullptr;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
Node* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode;
newNode->prev = temp;
}
}
void displayList() {
Node* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << std::endl;
}
};
int main() {
DoublyLinkedList myList;
myList.addNode(5);
myList.addNode(10);
myList.addNode(15);
myList.displayList();
return 0;
}
- ダブルリンクドリストの使用方法
上記の実装例では、
DoublyLinkedList
クラスを使用してダブルリンクドリストを作成し、addNode
メソッドで要素を追加します。displayList
メソッドを使用すると、リスト内の要素を表示することができます。
ダブルリンクドリストは、要素の挿入や削除が頻繁に行われる場合や、逆方向の走査が必要な場合に有用です。例えば、双方向のイテレーションが必要な場合や、要素の削除が高速に行える場合などです。
- その他のダブルリンクドリストの操作 ダブルリンクドリストには他にも様々な操作があります。例えば、指定した要素の削除や挿入、逆順での表示などです。これらの操作も実装例を参考にして学ぶことができます。
以上が、ダブルリンクドリストの実装と使用方法についての解説です。ダブルリンクドリストは、要素の追加や削除が容易であり、さまざまなアプリケーションで活用されています。