2. Para crear un árbol en C++, se puede
utilizar una estructura de datos de nodo
que contenga un valor y un puntero a los
nodos hijo izquierdo y derecho.
Creación de un árbol vacío: para crear un
árbol vacío en C++, se puede
simplemente asignar un puntero nulo al
puntero raíz.
3. • Se utiliza una función que busca el lugar adecuado
para colocar el nuevo elemento.
• La función puede ser recursiva y se basa en el valor del
elemento a insertar.
• Si el árbol está vacío, se crea un nuevo nodo.
• Si el valor del nuevo nodo es menor, se llama a la
función de manera recursiva para el subárbol
izquierdo.
• Si es mayor, se llama a la función de manera recursiva
para el subárbol derecho.
• Después de cada inserción, se puede actualizar la
altura y/o mantener la propiedad del árbol binario.
4.
5. El árbol debe mantener sus propiedades
y ajustarse si es necesario.
Los pasos son:
• Buscar el nodo a eliminar (p).
• Si p tiene menos de dos hijos, subir el
hijo a la posición del nodo eliminado.
• Si p tiene dos hijos, ubicar el nodo q
con la mayor clave menor a p.
• Reemplazar el contenido de p con el
de q.
• Eliminar el nodo q encontrado en el
primer paso.
6.
7. Recorrido en orden (inorder
traversal): este recorrido visita los
nodos en orden ascendente, primero
el subárbol izquierdo, luego la raíz y
finalmente el subárbol derecho.
Recorrido en preorden (preorder
traversal): este recorrido visita la raíz
primero, luego el subárbol izquierdo y
finalmente el subárbol derecho.
Recorrido en postorden (postorder
traversal): este recorrido visita
primero el subárbol izquierdo, luego
el subárbol derecho y finalmente la
raíz.
8.
9. • Encontrar un valor específico en un árbol es una operación
común.
• Se puede buscar de dos maneras: de forma recursiva o
iterativa.
• La búsqueda comienza en la raíz y se compara el valor del
nodo actual con el valor buscado.
• Si el valor buscado es menor, se busca en el subárbol
izquierdo; si es mayor, en el subárbol derecho.
• La búsqueda termina cuando se encuentra el valor buscado o
cuando se llega a un nodo vacío.
• Comprender la búsqueda es importante para trabajar con
árboles y realizar otras operaciones, como agregar o eliminar
nodos.
10.
11. • Insertar, buscar y eliminar nodos son operaciones esenciales en
programación y análisis de algoritmos con árboles binarios.
• La comprensión de estas operaciones es clave para manejar
eficientemente estructuras de datos complejas.
• Al eliminar un nodo, el árbol debe mantener sus propiedades y ajustarse
si es necesario.
• Encontrar un valor específico en un árbol se puede hacer de forma
recursiva o iterativa.
• Comprender la búsqueda es importante para trabajar con árboles y
realizar otras operaciones, como agregar o eliminar nodos.
12. • Cormen, T. H., Leiserson, C. E., Rivest, R. L., &
Stein, C. (2009). Introduction to algorithms. MIT
press.
• Knuth, D. E. (1998). The art of computer
programming, Volume 3: Sorting and searching.
Addison-Wesley Professional.
• Sedgewick, R., & Wayne, K. (2011). Algorithms.
Addison-Wesley Professional.