Eliminación de duplicados en array usando BST

Dada una array arr[] de enteros, la tarea es eliminar los duplicados de la array dada.  Ejemplos :  Input: arr[] = {1, 2, 3, 2, 5, 4, 4} Output: arr[] = {1, 2, 3, 4, 5} Input: arr[] = {127, 234, 127, 654, 355, 789, 355, 355, 999, 654} Output: arr[] = {127, 234, 355, … Continue reading «Eliminación de duplicados en array usando BST»

Aplanar BST a lista ordenada | Orden decreciente

Dado un árbol de búsqueda binario, la tarea es aplanarlo en una lista ordenada en orden decreciente. Precisamente, el valor de cada Node debe ser mayor que los valores de todos los Nodes a su derecha, y su Node izquierdo debe ser NULL después del aplanamiento. Debemos hacerlo en O(H) espacio extra donde ‘H’ es … Continue reading «Aplanar BST a lista ordenada | Orden decreciente»

Programa C++ para encontrar el K’th elemento más grande en una secuencia

Dada una secuencia infinita de números enteros, encuentre el k-ésimo elemento más grande en cualquier punto del tiempo. Ejemplo:  Input: stream[] = {10, 20, 11, 70, 50, 40, 100, 5, …} k = 3 Output: {_, _, 10, 11, 20, 40, 50, 50, …} El espacio extra permitido es O(k).  Hemos discutido diferentes enfoques para … Continue reading «Programa C++ para encontrar el K’th elemento más grande en una secuencia»

Un programa para verificar si un árbol binario es BST o no

Un árbol de búsqueda binario (BST) es una estructura de datos de árbol binario basada en Nodes que tiene las siguientes propiedades.  El subárbol izquierdo de un Node contiene solo Nodes con claves menores que la clave del Node. El subárbol derecho de un Node contiene solo Nodes con claves mayores que la clave del … Continue reading «Un programa para verificar si un árbol binario es BST o no»

Elemento más grande más pequeño que el elemento actual a la izquierda para cada elemento en Array

Dada una array arr[] de los enteros positivos de tamaño N , la tarea es encontrar el elemento más grande en el lado izquierdo de cada índice que sea más pequeño que el elemento presente en ese índice. Nota: Si no se encuentra dicho elemento, imprima -1 .  Ejemplos:   Entrada: arr[] = {2, 5, 10}  … Continue reading «Elemento más grande más pequeño que el elemento actual a la izquierda para cada elemento en Array»

Combinar dos BST con espacio adicional limitado

Dados dos árboles de búsqueda binarios (BST), imprima los elementos de ambos BST en forma ordenada. La complejidad de tiempo esperada es O(m+n) donde m es el número de Nodes en el primer árbol yn es el número de Nodes en el segundo árbol. El espacio auxiliar máximo permitido es O (altura del primer árbol … Continue reading «Combinar dos BST con espacio adicional limitado»

Convertir BST a montón mínimo

Dado un árbol de búsqueda binario que también es un árbol binario completo. El problema es convertir el BST dado en un Min Heap con la condición de que todos los valores en el subárbol izquierdo de un Node deben ser menores que todos los valores en el subárbol derecho del Node. Esta condición se … Continue reading «Convertir BST a montón mínimo»

Encuentre la mediana de BST en tiempo O (n) y espacio O (1)

Dado un árbol de búsqueda binario, encuentre la mediana de él. Si no. de Nodes son pares: entonces mediana = ((n/2º Node + ((n)/2º+1) Node) /2  Si el número de Nodes es impar: entonces mediana = (n+1)/2º Node. Por ejemplo , la mediana de debajo de BST es 12.   Más ejemplos:   Given BST(with odd no. of … Continue reading «Encuentre la mediana de BST en tiempo O (n) y espacio O (1)»

Convierta un BST en un árbol binario de modo que la suma de todas las claves mayores se agregue a cada clave

Dado un árbol de búsqueda binario (BST), conviértalo en un árbol binario de modo que cada clave del BST original se cambie a clave más la suma de todas las claves mayores en BST. Ejemplos:  Input: Root of following BST 5 / \ 2 13 Output: The given BST is converted to following Binary Tree 18 … Continue reading «Convierta un BST en un árbol binario de modo que la suma de todas las claves mayores se agregue a cada clave»