Programa C++ para QuickSort en lista doblemente enlazada

A continuación se muestra una implementación recursiva típica de QuickSort para arreglos. La implementación usa el último elemento como pivote.  C++ /* A typical recursive implementation of Quicksort for array*/    /* This function takes last element as pivot, places the pivot element at its    correct position in sorted array, and places all smaller (smaller … Continue reading «Programa C++ para QuickSort en lista doblemente enlazada»

Programa C++ para eliminar un Node en una lista enlazada

Hemos discutido la introducción de listas vinculadas y la inserción de listas vinculadas en publicaciones anteriores sobre una lista vinculada individualmente. Formulemos el enunciado del problema para comprender el proceso de eliminación. Dada una ‘clave’, elimine la primera aparición de esta clave en la lista vinculada .  Método iterativo: para eliminar un Node de la … Continue reading «Programa C++ para eliminar un Node en una lista enlazada»

Programa C++ para eliminar duplicados de una lista ordenada ordenada

Escriba una función que tome una lista ordenada en orden no decreciente y elimine cualquier Node duplicado de la lista. La lista solo debe recorrerse una vez. Por ejemplo, si la lista vinculada es 11->11->11->21->43->43->60, removeDuplicates() debería convertir la lista a 11->21->43->60.  Algoritmo:  recorrer la lista desde el Node principal (o inicial). Mientras atraviesa, compare cada … Continue reading «Programa C++ para eliminar duplicados de una lista ordenada ordenada»

Programa en C para la división alterna de un conjunto de listas 1 con enlaces simples dados

Escriba una función AlternatingSplit() que tome una lista y divida sus Nodes para hacer dos listas más pequeñas ‘a’ y ‘b’. Las sublistas deben estar hechas de elementos alternos en la lista original. Entonces, si la lista original es 0->1->0->1->0->1, entonces una sublista debería ser 0->0->0 y la otra debería ser 1->1->1. Método 1 (simple):  … Continue reading «Programa en C para la división alterna de un conjunto de listas 1 con enlaces simples dados»

Programa Javascript para eliminar Nodes que tienen un valor mayor en el lado derecho

Dada una lista enlazada individualmente, elimine todos los Nodes que tienen un valor mayor en el lado derecho.  Ejemplos:   Input: 12->15->10->11->5->6->2->3->NULL Output: 15->11->6->3->NULL Explanation: 12, 10, 5 and 2 have been deleted because there is a greater value on the right side. When we examine 12, we see that after 12 there is one node with … Continue reading «Programa Javascript para eliminar Nodes que tienen un valor mayor en el lado derecho»

Programa de Python para fusionar una lista vinculada en otra lista vinculada en posiciones alternativas

Dadas dos listas vinculadas, inserte Nodes de la segunda lista en la primera lista en posiciones alternativas de la primera lista. Por ejemplo, si la primera lista es 5->7->17->13->11 y la segunda es 12->10->2->4->6, la primera lista debería convertirse en 5->12->7- >10->17->2->13->4->11->6 y la segunda lista debería quedar vacía. Los Nodes de la segunda lista solo … Continue reading «Programa de Python para fusionar una lista vinculada en otra lista vinculada en posiciones alternativas»

Programa C para imprimir el reverso de una lista vinculada sin invertir realmente

Dada una lista enlazada, imprima el reverso usando una función recursiva. Por ejemplo, si la lista enlazada dada es 1->2->3->4, entonces la salida debería ser 4->3->2->1. Tenga en cuenta que la pregunta es solo sobre la impresión del reverso. Para invertir la lista en sí, vea este  Nivel de dificultad: Novato  Algoritmo:  printReverse(head) 1. call … Continue reading «Programa C para imprimir el reverso de una lista vinculada sin invertir realmente»

Programa C++ para apuntar el puntero Arbit al Node del lado derecho del mayor valor en una lista vinculada

Dada una lista enlazada individualmente con cada Node que tiene un puntero «arbitrario» adicional que actualmente apunta a NULL. Necesitamos hacer el puntero «arbitrario» al Node de mayor valor en una lista enlazada en su lado derecho.  Una solución simple es atravesar todos los Nodes uno por uno. Para cada Node, busque el Node que … Continue reading «Programa C++ para apuntar el puntero Arbit al Node del lado derecho del mayor valor en una lista vinculada»

Programa Javascript para encontrar el elemento medio de una lista vinculada dada

Dada una lista enlazada individualmente, busque el centro de la lista enlazada. Por ejemplo, si la lista enlazada dada es 1->2->3->4->5, entonces la salida debería ser 3.  Si hay Nodes pares, entonces habría dos Nodes intermedios, necesitamos imprimir el segundo intermedio. elemento. Por ejemplo, si la lista enlazada dada es 1->2->3->4->5->6, entonces la salida debería … Continue reading «Programa Javascript para encontrar el elemento medio de una lista vinculada dada»

Programa Java para invertir Nodes K ​​alternativos en una lista enlazada individualmente

Dada una lista enlazada, escriba una función para invertir cada k Node alternativo (donde k es una entrada a la función) de manera eficiente. Da la complejidad de tu algoritmo. Ejemplo:  Inputs: 1->2->3->4->5->6->7->8->9->NULL and k = 3 Output: 3->2->1->4->5->6->9->8->7->NULL. Método 1 (procesar 2k Nodes y llamar recursivamente al resto de la lista):  este método es … Continue reading «Programa Java para invertir Nodes K ​​alternativos en una lista enlazada individualmente»