Recorrido de árbol binario de orden de nivel

El recorrido de orden de nivel de un árbol es el recorrido primero en anchura para el árbol.  C++ // Recursive CPP program for level // order traversal of Binary Tree #include <bits/stdc++.h> using namespace std;   /* A binary tree node has data, pointer to left child and a pointer to right child */ … Continue reading «Recorrido de árbol binario de orden de nivel»

Problema de selección de actividades | Codicioso Algo-1

  Greedy es un paradigma algorítmico que construye una solución pieza por pieza, eligiendo siempre la siguiente pieza que ofrece el beneficio más obvio e inmediato. Los algoritmos codiciosos se utilizan para problemas de optimización. Un problema de optimización se puede resolver usando Greedy si el problema tiene la siguiente propiedad: en cada paso, podemos … Continue reading «Problema de selección de actividades | Codicioso Algo-1»

Dada una lista vinculada que está ordenada, ¿cómo insertará de manera ordenada?

  Dada una lista ordenada ordenada y un valor para insertar, escriba una función para insertar el valor de forma ordenada. Lista enlazada inicial  Lista enlazada después de la inserción de 9   Algoritmo:  permite que la lista de enlaces de entrada se ordene en orden creciente.  1) If Linked list is empty then make the … Continue reading «Dada una lista vinculada que está ordenada, ¿cómo insertará de manera ordenada?»

Unión e Intersección de dos Listas Vinculadas

Dadas dos listas enlazadas, cree listas de unión e intersección que contengan la unión y la intersección de los elementos presentes en las listas dadas. El orden de los elementos en las listas de salida no importa. Ejemplo:  Input: List1: 10->15->4->20 List2: 8->4->2->10 Output: Intersection List: 4->10 Union List: 2->8->20->4->15->10 Método 1 (Simple): Los siguientes … Continue reading «Unión e Intersección de dos Listas Vinculadas»

Combinar dos listas enlazadas ordenadas – Part 1

Escriba una función SortedMerge() que tome dos listas, cada una de las cuales está ordenada en orden creciente, y fusione las dos en una lista en orden creciente. SortedMerge() debería devolver la nueva lista. La nueva lista debe hacerse empalmando los Nodes de las dos primeras listas. Por ejemplo, si la primera lista enlazada a … Continue reading «Combinar dos listas enlazadas ordenadas – Part 1»

Ancestro común más bajo en un árbol binario

¿Qué es el ancestro común más bajo en el árbol binario? El ancestro común más bajo es el Node más bajo en el árbol que tiene n1 y n2 como descendientes, donde n1 y n2 son los Nodes para los que deseamos encontrar el LCA. Por lo tanto, el LCA de un árbol binario con … Continue reading «Ancestro común más bajo en un árbol binario»

Complemento a 1 y 2 de un número binario

Dado un número binario como una string, imprima sus complementos de 1 y 2.  El complemento a 1 de un número binario es otro número binario obtenido alternando todos los bits en él, es decir, transformando el bit 0 en 1 y el bit 1 en 0. En el formato de complemento a 1, los … Continue reading «Complemento a 1 y 2 de un número binario»

Probabilidad de que el caballo permanezca en el tablero

Dado un tablero de ajedrez NxN y un Caballo en la posición (x,y). El Caballero tiene que dar exactamente K pasos, donde en cada paso elige cualquiera de las 8 direcciones uniformemente al azar. ¿Cuál es la probabilidad de que el caballo permanezca en el tablero después de dar K pasos, con la condición de … Continue reading «Probabilidad de que el caballo permanezca en el tablero»

Combinar dos listas ordenadas (in situ)

Dadas dos listas ordenadas, combínelas para producir una lista ordenada combinada (sin usar espacio adicional). Ejemplos:  Input : head1: 5->7->9 head2: 4->6->8 Output : 4->5->6->7->8->9 Explanation: The output list is in sorted order. Input : head1: 1->3->5->7 head2: 2->4 Output : 1->2->3->4->5->7 Explanation: The output list is in sorted order. Hay diferentes soluciones discutidas en … Continue reading «Combinar dos listas ordenadas (in situ)»

Imprime los últimos k Nodes de la lista enlazada en orden inverso | Enfoque recursivo

Dada una lista enlazada que contiene N Nodes y un número entero positivo k debe ser menor o igual que N. La tarea es imprimir los últimos k Nodes de la lista en orden inverso. Ejemplos:   Input: list: 1->2->3->4->5, k = 2 Output: 5 4 Input: list: 3->10->6->9->12->2->8, k = 4 Output: 8 2 12 … Continue reading «Imprime los últimos k Nodes de la lista enlazada en orden inverso | Enfoque recursivo»