es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo crear una copia de una matriz de valores y una matriz de punteros sin utilizar std?

No puedo entender cómo hacer una copia de esta estructura:

struct Node {
private:
int *keys_;
int min_degree_;
Node **children_;
int count_;
bool is_leaf_;

Bueno, entiendo la mitad de todo esto:

Node(Node const &node) {
min_degree_ = node.min_degree_;
is_leaf_ = node.is_leaf_;
count_ = node.count_;

}

Y no está claro cómo hacer una copia del arreglo de valores (int keys_) y arreglo de punteros (Node *children_) sin STD. Se tiene que borrar el objeto original para que puedan copiarse las referencias, aunque no estoy seguro.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Node(Node const &node) {
    min_degree_ = node.min_degree_;
    is_leaf_ = node.is_leaf_;
    count_ = node.count_;
    keys_ = new int[node.count_];
    for (int i = 0; i < node.count_; i++) {
    keys_[i] = node.keys_[i];
    }
    children_ = new Node[node.count_ + 1];
    for (int i = 0; i <= node.count_; i++) {
    children_[i] = new Node(
    node.children_[i]);
    }
    }

    Node(Node const &node) {
    min_degree_ = node.min_degree_;
    is_leaf_ = node.is_leaf_;
    count_ = node.count_;
    keys_ = new int[node.count_];
    for (int i = 0; i < node.count_; i++) {
    keys_[i] = node.keys_[i];
    }
    children_ = new Node* [node.count_ + 1];
    for (int i = 0; i <= node.count_; i++) {
    children_[i] = new Node(*node.children_[i]);
    }
    }

Comments are closed.