Implementación de Deque usando array circular

Deque o Double Ended Queue es una versión generalizada de la estructura de datos de Queue que permite insertar y eliminar en ambos extremos. En una publicación anterior, discutimos la introducción de deque. Ahora, en esta publicación, vemos cómo implementamos deque usando una array circular.  Operaciones en Deque:  Principalmente, las siguientes cuatro operaciones básicas se … Continue reading «Implementación de Deque usando array circular»

Intercambiar los primeros y últimos Nodes en la lista enlazada circular

Dada la lista circular enlazada, intercambie el primer y el último Node. La tarea debe realizarse con un solo Node adicional, no puede declarar más de un Node adicional y tampoco puede declarar ninguna otra variable temporal.  Nota: Node adicional significa la necesidad de un Node para atravesar una lista.   Ejemplos:  Input : 5 4 … Continue reading «Intercambiar los primeros y últimos Nodes en la lista enlazada circular»

Suerte persona viva en un círculo | Solución de código para el rompecabezas de la espada

Dadas n personas paradas en un círculo donde el primero tiene una espada, encuentre a la persona más afortunada en el círculo, si, del primer soldado que tiene una espada, cada uno tiene que matar al siguiente soldado y entregar la espada al siguiente soldado, a su vez, el el soldado matará al soldado adyacente … Continue reading «Suerte persona viva en un círculo | Solución de código para el rompecabezas de la espada»

Programa controlado por menú para implementar todas las operaciones de la lista enlazada doblemente circular

La lista circular doblemente enlazada tiene propiedades tanto de la lista doblemente enlazada como de la lista circular enlazada en las que dos elementos consecutivos están enlazados o conectados por el puntero anterior y siguiente y el último Node apunta al primer Node por el puntero siguiente y también el primer Node apunta al último … Continue reading «Programa controlado por menú para implementar todas las operaciones de la lista enlazada doblemente circular»

Dividir una lista enlazada circular en dos mitades

Original Linked List Result Linked List 1 Result Linked List 2 Si hay un número impar de Nodes , la primera lista debe contener uno adicional.  Gracias a Geek4u por sugerir el algoritmo. 1) Almacene los punteros medio y último de la lista enlazada circular utilizando el algoritmo de Turtle y liebre. 2) Hacer la segunda mitad … Continue reading «Dividir una lista enlazada circular en dos mitades»

Lista enlazada doblemente circular | Juego 2 (Eliminación)

Hemos discutido la introducción de la lista enlazada doblemente circular y su inserción . 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 circular doblemente enlazada.  Algoritmo: Caso 1: Lista vacía (inicio = NULL)   Si la lista está vacía, … Continue reading «Lista enlazada doblemente circular | Juego 2 (Eliminación)»

Invertir una lista enlazada doblemente circular

El problema es invertir la lista enlazada doblemente circular dada. Ejemplos:  Entrada:  Producción:   Algoritmo:   insertEnd(head, new_node) Declare last if head == NULL then new_node->next = new_node->prev = new_node head = new_node return last = head->prev new_node->next = head head->prev = new_node new_node->prev = last last->next = new_node reverse(head) Initialize new_head = NULL Declare last last … Continue reading «Invertir una lista enlazada doblemente circular»

Tipos de lista enlazada

Una lista enlazada es una estructura de datos lineal, en la que los elementos no se almacenan en ubicaciones de memoria contiguas. Los elementos de una lista enlazada se enlazan mediante punteros . En palabras simples, una lista enlazada consta de Nodes donde cada Node contiene un campo de datos y una referencia (enlace) al … Continue reading «Tipos de lista enlazada»

Convierta una lista enlazada individualmente en una lista enlazada circular

Dada una lista enlazada individualmente, tenemos que convertirla en una lista enlazada circular. Por ejemplo, se nos ha dado una lista de enlaces simples con cuatro Nodes y queremos convertir esta lista de enlaces simples en una lista de enlaces circulares.  C++ // Program for converting singly linked list // into circular linked list. #include … Continue reading «Convierta una lista enlazada individualmente en una lista enlazada circular»

Convertir un árbol binario dado en una lista circular doblemente enlazada | conjunto 2

Dado un árbol binario, conviértalo en una lista circular doblemente enlazada.  Los punteros izquierdo y derecho en los Nodes se utilizarán como punteros anterior y siguiente, respectivamente, en la Lista enlazada circular convertida. El orden de los Nodes en la Lista debe ser el mismo que en el orden del Árbol Binario dado. El primer … Continue reading «Convertir un árbol binario dado en una lista circular doblemente enlazada | conjunto 2»