Lista vinculada XOR: elementos de intercambio por pares de una lista vinculada determinada

Dada una lista enlazada XOR , la tarea es intercambiar por pares los elementos de la lista enlazada XOR dada . Ejemplos: Entrada: 4 <-> 7 <-> 9 <-> 7 Salida: 7 <-> 4 <-> 7 <-> 9 Explicación: el primer par de Nodes se intercambia para formar la secuencia {4, 7} y el segundo … Continue reading «Lista vinculada XOR: elementos de intercambio por pares de una lista vinculada determinada»

Algoritmo más rápido de la ruta más corta

Prerrequisitos: Algoritmo Bellman-Ford Dado un grafo ponderado dirigido con V vértices, E aristas y un vértice fuente S . La tarea es encontrar el camino más corto desde el vértice de origen a todos los demás vértices en el gráfico dado. Ejemplo:   Entrada: V = 5, S = 1, arr = {{1, 2, 1}, {2, … Continue reading «Algoritmo más rápido de la ruta más corta»

Encuentra strings que terminan con un sufijo dado

Dado un conjunto de strings S y una string P , la tarea es imprimir todas las strings del conjunto con el sufijo P. Ejemplos: Entrada: S = {“geeks”, “geeksforgeeks”, “geek”, “newgeeks”, “friendsongeeks”, “toppergeek”} P = “geeks” Salida: geeks friendsongeeks geeksforgeeks newgeeks Entrada: S = {“wideworld”, “ webworld”, “classicword”, “world”, “worldclass”} P = “world” Salida: … Continue reading «Encuentra strings que terminan con un sufijo dado»

Cuente los Nodes más grandes en el árbol AVL

En este artículo veremos cómo calcular el número de elementos que son mayores que el valor dado en el árbol AVL . Ejemplos: Input : x = 5 Root of below AVL tree 9 / \ 1 10 / \ \ 0 5 11 / / \ -1 2 6 Output : 4 Explanation: there … Continue reading «Cuente los Nodes más grandes en el árbol AVL»

Contar inversiones usando conjunto ordenado y GNU C++ PBDS

Dada una array arr[] de N enteros. La tarea es encontrar el número de inversión. Dos elementos arr[i] y arr[j] forman una inversión si arr[i] > arr[j] e i < j .  Ejemplos  Entrada: arr[] = {8, 4, 2, 1}  Salida: 6  Explicación:  la array dada tiene seis inversiones:   (8, 4): arr[0] > arr[1] y … Continue reading «Contar inversiones usando conjunto ordenado y GNU C++ PBDS»

Árbol de búsqueda binario de doble subproceso

Árbol de búsqueda binaria de doble subproceso: es un árbol de búsqueda binaria en el que los Nodes no son todos los punteros NULL de la izquierda apuntan a su predecesor en orden y el puntero NULL de la derecha apunta al sucesor en orden. Los subprocesos también son útiles para acceder rápidamente a los … Continue reading «Árbol de búsqueda binario de doble subproceso»

Árbol de boas Proto Van Emde | Conjunto 3 | Inserción y consulta isMember

Consulte los artículos anteriores sobre Proto Van Emde Boas Tree para comprenderlos correctamente.  Procedimiento para Insertar:   Caso base: si el tamaño de Proto-VEB es 2, entonces asigne verdadero a la array de bits (aquí, en el código, asignamos Proto-VEB (1) debido a la estructura recursiva, por lo que ahora no es nullptr y actúa como … Continue reading «Árbol de boas Proto Van Emde | Conjunto 3 | Inserción y consulta isMember»

Árbol de boas Proto Van Emde | Juego 2 | Construcción

Van Emde Boas Tree admite operaciones de búsqueda, mínimo, máximo, sucesor, predecesor, inserción y eliminación en tiempo O (lglgN), que es más rápido que cualquiera de las estructuras de datos relacionadas, como la cola de prioridad, el árbol de búsqueda binaria, etc. El árbol Proto Van Emde Boas es estructura de datos de tipo de … Continue reading «Árbol de boas Proto Van Emde | Juego 2 | Construcción»

Costo mínimo de reducir Array al fusionar cualquier elemento adyacente repetidamente

Dada una array arr[] de N números. Podemos fusionar dos números adyacentes en uno y el costo de fusionar los dos números es igual a la suma de los dos valores. La tarea es encontrar el costo mínimo total de fusionar todos los números. Ejemplos:   Entrada: arr[] = { 6, 4, 4, 6 }  Salida: … Continue reading «Costo mínimo de reducir Array al fusionar cualquier elemento adyacente repetidamente»

Consultas para encontrar el primer elemento de array que exceda K con actualizaciones

Dada una array arr[] de tamaño N y una array 2D Q[][] que consta de consultas de los siguientes dos tipos: 1 XY: actualice el elemento de array en el índice X con Y. 2 K: Imprime la posición del primer elemento de la array mayor o igual que K . Si no existe tal … Continue reading «Consultas para encontrar el primer elemento de array que exceda K con actualizaciones»