Suma de todos los elementos del árbol N-ario

Dado un árbol N-ario, encuentre la suma de todos los elementos en él.  C++ // C++ program to find sum of all // elements in generic tree #include <bits/stdc++.h> using namespace std;    // Represents a node of an n-ary tree struct Node {     int key;     vector<Node*> child; };    // Utility function to create … Continue reading «Suma de todos los elementos del árbol N-ario»

Encuentre el hermano correcto de un árbol binario con punteros principales

Dado un árbol binario con punteros principales, encuentre el hermano correcto de un Node dado (se dará el puntero al Node), si no existe, devuelva nulo. ¿Hacerlo en O(1) espacio y O(n) tiempo? Ejemplos:  1 / \ 2 3 / \ \ 4 6 5 / \ \ 7 9 8 / \ 10 12 … Continue reading «Encuentre el hermano correcto de un árbol binario con punteros principales»

Vista inferior de un árbol binario

Dado un árbol binario, necesitamos imprimir la vista inferior de izquierda a derecha. Un Node x está allí en la salida si x es el Node más bajo en su distancia horizontal. La distancia horizontal del hijo izquierdo de un Node x es igual a una distancia horizontal de x menos 1, y la de … Continue reading «Vista inferior de un árbol binario»

Dado un árbol binario, imprima todos sus caminos de raíz a hoja, uno por línea.

Dadas las raíces de un árbol. imprima todas sus rutas de raíz a hoja, una por línea.  Algoritmo: initialize: pathlen = 0, path[1000] /*1000 is some max limit for paths, it can change*/ /*printPathsRecur traverses nodes of tree in preorder */ printPathsRecur(tree, path[], pathlen) 1) If node is not NULL then a) push data to … Continue reading «Dado un árbol binario, imprima todos sus caminos de raíz a hoja, uno por línea.»

Recorrido de orden de nivel específico de árbol binario perfecto

Dado un árbol binario perfecto como el siguiente:  C++ /* C++ program for special order traversal */ #include <iostream> #include <queue> using namespace std;   /* A binary tree node has data, pointer to left child    and a pointer to right child */ struct Node {     int data;     Node *left;     Node *right; };   /* … Continue reading «Recorrido de orden de nivel específico de árbol binario perfecto»

Imprime los Nodes en niveles impares de un árbol.

Dado un árbol binario, imprima Nodes de nivel impar en cualquier orden. La raíz se considera en el nivel 1. For example consider the following tree 1 / \ 2 3 / \ \ 4 5 6 / \ / 7 8 9 Output 1 4 5 6 Método 1 (recursivo): la idea es pasar … Continue reading «Imprime los Nodes en niveles impares de un árbol.»

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»

Convertir un árbol en bosque de Nodes pares

Dado un árbol de n Nodes pares. La tarea es encontrar el número máximo de bordes que se eliminarán del árbol dado para obtener un bosque de árboles que tenga un número par de Nodes. Este problema siempre se puede resolver ya que el gráfico dado tiene Nodes pares. Ejemplos:  Input : n = 10 … Continue reading «Convertir un árbol en bosque de Nodes pares»

Comprobar si un gráfico dado es árbol o no

Escribe una función que devuelva verdadero si un gráfico no dirigido dado es un árbol y falso en caso contrario. Por ejemplo, el siguiente gráfico es un árbol.  C++ // A C++ Program to check whether a graph is tree or not #include<iostream> #include <list> #include <limits.h> using namespace std;   // Class for an … Continue reading «Comprobar si un gráfico dado es árbol o no»