Реализация алгоритма дерева Раймонда на C++ с демонстрацией

Вот демонстрация алгоритма дерева Рэймонда, реализованного на C++:

#include <iostream>
#include <vector>
using namespace std;
// Node structure for Raymond Tree
struct Node {
    int data;
    vector<Node*> children;
};
// Function to create a new node
Node* createNode(int data) {
    Node* newNode = new Node;
    newNode->data = data;
    return newNode;
}
// Function to insert a node as a child of another node
void insertNode(Node* parent, int data) {
    Node* newNode = createNode(data);
    parent->children.push_back(newNode);
}
// Function to perform depth-first traversal of the Raymond Tree
void depthFirstTraversal(Node* root) {
    if (root == nullptr) return;
    cout << root->data << " ";
    for (Node* child : root->children) {
        depthFirstTraversal(child);
    }
}
int main() {
    // Creating a Raymond Tree
    Node* root = createNode(1);
    insertNode(root, 2);
    insertNode(root, 3);
    insertNode(root->children[0], 4);
    insertNode(root->children[1], 5);
    insertNode(root->children[1], 6);
    // Performing depth-first traversal
    cout << "Depth-First Traversal: ";
    depthFirstTraversal(root);
    return 0;
}

Объяснение:
Приведенный выше код демонстрирует реализацию алгоритма дерева Раймонда на C++. Дерево Раймонда — это древовидная структура данных, в которой каждый узел может иметь произвольное количество дочерних элементов. В этом коде мы определяем структуру Node, которая содержит целочисленное значение и вектор дочерних узлов. Мы предоставляем функции для создания нового узла и вставки узла как дочернего элемента другого узла. Функция DeepFirstTraversalвыполняет обход дерева Раймонда в глубину, печатая значения узлов в порядке глубины.

Чтобы создать дерево Раймонда, мы создаем корневой узел и вставляем дочерние узлы с помощью функции insertNode. В этом примере мы создаем дерево Раймонда со следующей структурой:

       1
      / \
     2   3
    /     \
   4       5
           \
            6

Наконец, мы выполняем обход дерева в глубину и печатаем значения узлов.