Ancho vertical del árbol binario | Serie 1

Dado un árbol binario, encuentre el ancho vertical del árbol binario. El ancho de un árbol binario es el número de caminos verticales.  C++ // CPP program to print vertical width // of a tree #include <bits/stdc++.h> using namespace std;    // A Binary Tree Node struct Node {     int data;     struct Node *left, *right; … Continue reading «Ancho vertical del árbol binario | Serie 1»

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»

Encuentre el Node Kth en el recorrido DFS de un subárbol dado en un árbol

Dado un árbol con N Nodes y dos enteros K y V . La tarea es encontrar el Node Kth en el recorrido DFS del vértice V . Considere el siguiente árbol: DFS del Node número 1 es [1, 2, 3, 5, 6, 8, 7, 9, 4]. El DFS del número de Node 3 es [3, … Continue reading «Encuentre el Node Kth en el recorrido DFS de un subárbol dado en un árbol»

Comprobar si dos árboles tienen la misma estructura

Dados dos árboles binarios. La tarea es escribir un programa para verificar si los dos árboles tienen una estructura idéntica.  En la figura anterior, ambos árboles, Tree1 y Tree2, tienen una estructura idéntica. Es decir, tienen la misma estructura. Nota : este problema es diferente de Verificar si dos árboles son idénticos , ya que … Continue reading «Comprobar si dos árboles tienen la misma estructura»

Recorridos de árboles (en orden, preorden y posorden) – Part 1

A diferencia de las estructuras de datos lineales (array, lista enlazada, colas, pilas, etc.) que solo tienen una forma lógica de atravesarlos, los árboles se pueden recorrer de diferentes maneras. Las siguientes son las formas generalmente utilizadas para atravesar árboles. C++ // C++ program for different tree traversals #include <iostream> using namespace std;    /* … Continue reading «Recorridos de árboles (en orden, preorden y posorden) – Part 1»

Comprobar si un árbol binario está ordenado por niveles o no

Dado un árbol binario. La tarea es verificar si el árbol binario está ordenado por niveles o no. Un árbol binario se ordena por niveles si max(i- 1th level) es menor que min( ith level). Ejemplos :   Input : 1 / \ / \ 2 3 / \ / \ / \ / \ 4 5 … Continue reading «Comprobar si un árbol binario está ordenado por niveles o no»

Diferencia entre gráfico y árbol.

Gráfico : Un grafo es una colección de dos conjuntos V y E donde V es un conjunto finito no vacío de vértices y E es un conjunto finito no vacío de aristas. Los vértices no son más que los Nodes en el gráfico. Dos vértices adyacentes están unidos por aristas. Cualquier gráfico se denota … Continue reading «Diferencia entre gráfico y árbol.»

Encuentre la coincidencia máxima en un árbol binario dado

Dado un árbol con N Nodes valores de 1 a N y N – 1 aristas. La tarea es encontrar la coincidencia máxima en el árbol dado. Una coincidencia en un árbol es una colección de aristas tal que ningún par de aristas comparte un Node común. La coincidencia con la mayoría de los bordes … Continue reading «Encuentre la coincidencia máxima en un árbol binario dado»

Escriba un programa para encontrar la profundidad o altura máxima de un árbol

Dado un árbol binario, encuentra su altura. La altura del árbol vacío es -1, la altura del árbol con un Node es 0 y la altura del árbol inferior es 2.   C++ // C++ program to find height of tree #include <bits/stdc++.h> using namespace std;     /* A binary tree node has data, pointer … Continue reading «Escriba un programa para encontrar la profundidad o altura máxima de un árbol»

Encuentre MEX de cada subárbol en un árbol dado

Dado un árbol genérico que consta de N Nodes numerados de 0 a N – 1 que tiene su raíz en el Node 0 y una array val[] tal que el valor en cada Node está representado por val[i] , la tarea de cada Node es encontrar el valor de MEX de su subárbol. El … Continue reading «Encuentre MEX de cada subárbol en un árbol dado»