Introducción a la estructura de datos de árbol

¿Qué es una estructura de datos de árbol? Un árbol es una estructura de datos no lineal y jerárquica que consta de una colección de Nodes de modo que cada Node del árbol almacena un valor y una lista de referencias a otros Nodes (los «hijos»). Esta estructura de datos es un método especializado para … Continue reading «Introducción a la estructura de datos de árbol»

Siguiente Elemento más grande en el árbol n-ario

Dado un árbol genérico y un entero x. Encuentre y devuelva el Node con el siguiente elemento más grande en el árbol, es decir, encuentre un Node justo mayor que x. Retorna NULL si no hay ningún Node presente con un valor mayor que x.  Por ejemplo, en el árbol dado C++ // CPP program … Continue reading «Siguiente Elemento más grande en el árbol n-ario»

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

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)»

Compruebe si todos los niveles de dos árboles son anagramas o no

Dados dos árboles binarios, tenemos que comprobar si cada uno de sus niveles son anagramas entre sí o no. Ejemplo:   C++ /* Iterative program to check if two trees are level    by level anagram. */ #include <bits/stdc++.h> using namespace std;   // A Binary Tree Node struct Node {     struct Node *left, *right;     int data; }; … Continue reading «Compruebe si todos los niveles de dos árboles son anagramas o no»

Dado un árbol n-ario, cuente el número de Nodes que tienen más hijos que padres

Dado un árbol N-ario representado como una lista de adyacencia, necesitamos escribir un programa para contar todos esos Nodes en este árbol que tiene más hijos que su padre. Por ejemplo,  CPP // C++ program to count number of nodes // which has more children than its parent   #include<bits/stdc++.h> using namespace std;   // … Continue reading «Dado un árbol n-ario, cuente el número de Nodes que tienen más hijos que padres»

Encuentre el Node n en el recorrido posterior al orden de un árbol binario

Dado un árbol binario y un número N, escriba un programa para encontrar el N-ésimo Node en el recorrido Posorden del árbol binario dado. Requisito previo : Ejemplos de cruce de árboles :   Input : N = 4 11 / \ 21 31 / \ 41 51 Output : 31 Explanation: Postorder Traversal of given … Continue reading «Encuentre el Node n en el recorrido posterior al orden de un árbol binario»

Construya un árbol binario completo a partir de recorridos previos y posteriores dados

Dadas dos arrays que representan recorridos previos y posteriores al pedido de un árbol binario completo, construya el árbol binario. Árbol binario completo es un árbol binario donde cada Node tiene 0 o 2 hijos. Ilustración: Los siguientes son ejemplos de árboles completos.  1 / \ 2 3 / \ / \ 4 5 6 … Continue reading «Construya un árbol binario completo a partir de recorridos previos y posteriores dados»

No se permite la suma máxima de un árbol con niveles adyacentes

Dado un árbol binario con valores enteros positivos. Encuentre la suma máxima de Nodes tal que no podamos elegir dos niveles para calcular la suma  Examples: Input : Tree 1 / \ 2 3 / 4 \ 5 / 6 Output :11 Explanation: Total items we can take: {1, 4, 6} or {2, 3, 5}. … Continue reading «No se permite la suma máxima de un árbol con niveles adyacentes»

Construya un árbol especial a partir de un recorrido preorden dado

Dada una array ‘pre[]’ que representa el recorrido de Preorder de un árbol binario especial donde cada Node tiene 0 o 2 hijos. Se da una array más ‘preLN[]’ que tiene solo dos valores posibles ‘L’ y ‘N’. El valor ‘L’ en ‘preLN[]’ indica que el Node correspondiente en Binary Tree es un Node de … Continue reading «Construya un árbol especial a partir de un recorrido preorden dado»

Escribir un programa para calcular el tamaño de un árbol | recursividad

El tamaño de un árbol es el número de elementos presentes en el árbol. El tamaño del árbol de abajo es 5.   C++ // A recursive C++ program to // calculate the size of the tree #include <bits/stdc++.h> using namespace std;   /* A binary tree node has data, pointer to left child and a … Continue reading «Escribir un programa para calcular el tamaño de un árbol | recursividad»