Escriba un programa para eliminar un árbol

Para eliminar un árbol, debemos recorrer todos los Nodes del árbol y eliminarlos uno por uno. Entonces, ¿qué recorrido deberíamos usar: transversal en orden, transversal en preorden o transversal en postorden? La respuesta es simple. Deberíamos usar la transversal de orden posterior porque antes de eliminar el Node principal, primero debemos eliminar sus Nodes secundarios. … Continue reading «Escriba un programa para eliminar un árbol»

Encuentra un número en pasos mínimos

Dada una recta numérica infinita de -INFINITY a +INFINITY y estamos en cero. Podemos mover n pasos a cada lado en cada enésima vez.  Enfoque 1: Uso de Tree  C++ // C++ program to find a number in minimum steps #include <bits/stdc++.h> using namespace std; #define InF 99999    // To represent data of a … Continue reading «Encuentra un número en pasos mínimos»

Encuentra el Node más profundo en un árbol binario

Dado un árbol binario, encuentre el Node más profundo en él. Ejemplos:  C++ // A C++ program to find value of the deepest node // in a given binary tree #include <bits/stdc++.h> using namespace std;   // A tree node struct Node {     int data;     struct Node *left, *right; };   // Utility function to … Continue reading «Encuentra el Node más profundo en un árbol binario»

Crear una lista doblemente enlazada a partir de un árbol ternario

Dado un árbol ternario, cree una lista doblemente enlazada a partir de él. Un árbol ternario es como un árbol binario, pero en lugar de tener dos Nodes, tiene tres Nodes, es decir, izquierdo, medio y derecho. La lista doblemente enlazada debe tener las siguientes propiedades:   El puntero izquierdo del árbol ternario debería actuar como … Continue reading «Crear una lista doblemente enlazada a partir de un árbol ternario»

Número máximo de Nodes distintos en una ruta de raíz a hoja

Dado un árbol binario, busque el recuento de Nodes distintos en todos los caminos de la raíz a la hoja e imprima el máximo.  Ejemplos: C++ // C++ program to find count of distinct nodes // on a path with maximum distinct nodes. #include <bits/stdc++.h> using namespace std;   // A node of binary tree … Continue reading «Número máximo de Nodes distintos en una ruta de raíz a hoja»

Cuente los subárboles que suman un valor dado x solo usando una función recursiva única

Dado un árbol binario que contiene n Nodes. El problema es contar los subárboles que tienen la suma total de datos del Node igual a un valor dado usando solo funciones recursivas únicas. Ejemplos:  Input : 5 / \ -10 3 / \ / \ 9 8 -4 7 x = 7 Output : 2 … Continue reading «Cuente los subárboles que suman un valor dado x solo usando una función recursiva única»

Reemplazar Node con profundidad en un árbol binario

Dado un árbol binario, reemplace cada Node con su valor de profundidad. Por ejemplo, considere el siguiente árbol. La raíz está en la profundidad 0, cambie su valor a 0 y los Nodes del siguiente nivel estarán en la profundidad 1 y así sucesivamente.  3 0 / \ / \ 2 5 == >; 1 … Continue reading «Reemplazar Node con profundidad en un árbol binario»

Encuentra si el nivel vertical dado del árbol binario está ordenado o no

Dado un árbol binario. Encuentra si un nivel vertical dado del árbol binario está ordenado o no. (En el caso de que dos Nodes se superpongan, verifique si forman una secuencia ordenada en el nivel en el que se encuentran). Requisito previo: Transversal de orden vertical Ejemplos:  C++ // CPP program to determine whether // vertical … Continue reading «Encuentra si el nivel vertical dado del árbol binario está ordenado o no»

Compruebe si una array representa el orden del árbol de búsqueda binaria o no

Dada una array de N elemento. La tarea es verificar si se trata de un recorrido en orden de cualquier árbol de búsqueda binaria o no. Imprima «Sí» si se trata de un recorrido en orden de cualquier árbol de búsqueda binaria; de lo contrario, imprima «No».  Ejemplos:  C++ // C++ program to check if … Continue reading «Compruebe si una array representa el orden del árbol de búsqueda binaria o no»