ダブルリンクリストの末尾にノードを挿入する方法


  1. Pythonでの実装例:
class Node:
    def __init__(self, data):
        self.data = data
        self.prev = None
        self.next = None
class DoublyLinkedList:
    def __init__(self):
        self.head = None
    def append(self, data):
        new_node = Node(data)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next is not None:
                current = current.next
            current.next = new_node
            new_node.prev = current
    def print_list(self):
        current = self.head
        while current is not None:
            print(current.data)
            current = current.next
# ダブルリンクリストの作成とノードの挿入
dll = DoublyLinkedList()
dll.append(1)
dll.append(2)
dll.append(3)
# リストの表示
dll.print_list()
  1. C++での実装例:
#include <iostream>
struct Node {
    int data;
    Node* prev;
    Node* next;
};
class DoublyLinkedList {
private:
    Node* head;
public:
    DoublyLinkedList() {
        head = nullptr;
    }
    void append(int data) {
        Node* new_node = new Node;
        new_node->data = data;
        new_node->prev = nullptr;
        new_node->next = nullptr;
        if (head == nullptr) {
            head = new_node;
        } else {
            Node* current = head;
            while (current->next != nullptr) {
                current = current->next;
            }
            current->next = new_node;
            new_node->prev = current;
        }
    }
    void printList() {
        Node* current = head;
        while (current != nullptr) {
            std::cout << current->data << std::endl;
            current = current->next;
        }
    }
};
int main() {
    DoublyLinkedList dll;
    dll.append(1);
    dll.append(2);
    dll.append(3);
    dll.printList();
    return 0;
}

これらのコード例を使用すると、ダブルリンクリストの末尾にノードを挿入することができます。コードを実行すると、リストの要素が表示されます。

この記事では、ダブルリンクリストへのノードの挿入方法を紹介しました。他のプログラミング言語でも同様の手法が使えますので、自分の使用している言語に合わせて実装してみてください。