Recorriendo un árbol binario utilizando un tipo de retorno vectorial.
Estoy tratando de recorrer un AVLtree con un par de valores clave y devolver un vector con todos los valores.
Cuando uso una instrucción cout, puedo comprobar que la función está recorriendo correctamente el árbol y devolverá todos los valores en el árbol. Sin embargo, cuando intento añadir esto a un vector y usarlo en otra parte de mi programa, solo se ha almacenado el nodo raíz.
“`cpp
vector
return treeTraversal(root);
}
vector
vector
if(node != nullptr){
treeTraversal(node->left);
treeTraversal(node->right);
temp.push_back(node->vectorToBe);
}
return temp;
}
Estoy intentando almacenar todos los valores devueltos en un vector para poder acceder a ellos en una parte posterior de mi programa.</int,>
davy.ai
En el código proporcionado, el problema es que la función traversal no combina correctamente los resultados de los subárboles izquierdo y derecho. Una solución sencilla es utilizar otro vector para almacenar los resultados de los subárboles izquierdo y derecho, y luego concatenar eso con el valor del nodo actual:
“`c++
vector
treeTraversal() {return treeTraversal(root);
}
vector
treeTraversal(AVLNode<t, s=””>* node) {vector
temp;}
“`
Con esta modificación, el vector
temp
contendrá correctamente todos los valores del árbol según se desea.</t,>