¿Qué es el algoritmo? Introducción a los Algoritmos

¿Qué es un algoritmo? Conceptos básicos del algoritmo La palabra Algoritmo significa “ Un conjunto de reglas a seguir en los cálculos u otras operaciones de resolución de problemas ” o “ Un procedimiento para resolver un problema matemático en un número finito de pasos que frecuentemente mediante operaciones recursivas ”.  Por lo tanto, el … Continue reading «¿Qué es el algoritmo? Introducción a los Algoritmos»

Suma máxima de copa de cóctel en una array 2D

Dada una array 2D mat[][] , la tarea es encontrar la suma máxima de una copa de cóctel.   A Cocktail glass is made of 6 cells in the following form: X X X X X X Ejemplos:   Input: mat[][] = { {1, 0, 4, 0, 0}, {0, 3, 0, 0, 0}, {1, 1, 1, 0, … Continue reading «Suma máxima de copa de cóctel en una array 2D»

Diferencia entre pila y árbol

Pila: una pila es una estructura de datos lineal en la que los elementos se pueden insertar y eliminar solo desde un lado de la lista, llamado la parte superior . La inserción se denomina operación push y la eliminación se denomina operación pop en el caso de la pila. El orden de inserción y … Continue reading «Diferencia entre pila y árbol»

Encuentra si el nivel vertical dado del árbol binario está ordenado o no

Dado un árbol binario. Encuentra si un nivel vertical dado del árbol binario está ordenado o no. (En el caso de que dos Nodes se superpongan, verifique si forman una secuencia ordenada en el nivel en el que se encuentran). Requisito previo: Transversal de orden vertical Ejemplos:  C++ // CPP program to determine whether // vertical … Continue reading «Encuentra si el nivel vertical dado del árbol binario está ordenado o no»

Lista enlazada ortogonal

Una Lista Enlazada Ortogonal es una estructura de datos compuesta por elementos fundamentales llamados Nodes (similares a las listas enlazadas). Cada Node en una lista enlazada ortogonal apunta a otros 4 Nodes, a saber, arriba, abajo, izquierda y derecha. En esencia, al igual que una array es una versión 2D de un arreglo, una lista … Continue reading «Lista enlazada ortogonal»

Insertar un Node en la lista enlazada antes de un Node dado

Dado un Node de Lista enlazada N y un valor K, la tarea es insertar el Node con valor K en la lista enlazada antes del Node N dado . Estructura del Node: C++ // Structure of Node struct Node {     int data;     Node* next;        // Constructor of Node     Node(int val, Node* link = … Continue reading «Insertar un Node en la lista enlazada antes de un Node dado»

Cuente el número máximo de elementos que se pueden seleccionar de la array

Dada una array arr[] , la tarea es contar el número máximo de elementos que se pueden seleccionar de la array dada siguiendo el siguiente proceso de selección:  En la primera selección, seleccione un elemento que sea mayor o igual a 1. En la segunda selección, seleccione un elemento que sea mayor o igual a … Continue reading «Cuente el número máximo de elementos que se pueden seleccionar de la array»

Comprimir un árbol binario de arriba a abajo con condición superpuesta

Dado un árbol binario , la tarea es comprimir todos los Nodes en la misma línea vertical en un solo Node de tal manera que si el conteo de bits establecidos de todos los Nodes en una línea vertical en cualquier posición es mayor que el conteo de bits claros en esa posición, entonces se … Continue reading «Comprimir un árbol binario de arriba a abajo con condición superpuesta»

Minimizar la diferencia máxima entre elementos adyacentes en una array

Dada una array no decreciente arr[] y un entero K , la tarea es eliminar K elementos de la array de modo que la diferencia máxima entre los elementos adyacentes sea mínima. Nota: K < N – 2 Ejemplos:  Entrada: arr[] = {3, 7, 8, 10, 14}, K = 2  Salida: 2  Explicación:  Después de … Continue reading «Minimizar la diferencia máxima entre elementos adyacentes en una array»

Imprima todas las rutas más cortas entre el origen y el destino dados en un gráfico no dirigido

Dado un gráfico no dirigido y no ponderado y dos Nodes como fuente y destino , la tarea es imprimir todas las rutas de menor longitud entre la fuente y el destino dados. Ejemplos:   Entrada: origen = 0, destino = 5   Salida:  0 -> 1 -> 3 -> 5 0 -> 2 -> 3 -> … Continue reading «Imprima todas las rutas más cortas entre el origen y el destino dados en un gráfico no dirigido»