Programa de Python para aplanar una lista enlazada de varios niveles – Part 1

Dada una lista enlazada donde, además del puntero siguiente, cada Node tiene un puntero secundario, que puede o no apuntar a una lista separada. Estas listas de elementos secundarios pueden tener uno o más elementos secundarios propios, y así sucesivamente, para producir una estructura de datos de varios niveles, como se muestra en la siguiente … Continue reading «Programa de Python para aplanar una lista enlazada de varios niveles – Part 1»

Programa de Python para eliminar N Nodes después de M Nodes de una lista vinculada

Dada una lista enlazada y dos números enteros M y N. Recorra la lista enlazada de modo que retenga M Nodes y luego elimine los siguientes N Nodes, continúe igual hasta el final de la lista enlazada. Nivel de dificultad: Novato  Ejemplos: Input: M = 2, N = 2 Linked List: 1->2->3->4->5->6->7->8 Output: Linked List: … Continue reading «Programa de Python para eliminar N Nodes después de M Nodes de una lista vinculada»

Bonita lista enlazada de impresión en Python

Crear tipos de datos personalizados puede ser complicado, especialmente cuando desea usarlo como cualquier otro tipo de datos. La lista vinculada se puede considerar como un ejemplo de un tipo de datos personalizado. En otros idiomas, si desea imprimir la lista enlazada, definiría una función de impresión separada, algo así como pprint pero se ve … Continue reading «Bonita lista enlazada de impresión en Python»

Programa Python para la Torre de Hanoi

Tower of Hanoi es un rompecabezas matemático donde tenemos tres varillas y n discos. El objetivo del rompecabezas es mover toda la pila a otra barra, obedeciendo las siguientes reglas simples:  1) Solo se puede mover un disco a la vez. 2) Cada movimiento consiste en tomar el disco superior de una de las pilas y … Continue reading «Programa Python para la Torre de Hanoi»

Programa de Python para invertir una lista enlazada – Part 1

Dado el puntero al Node principal de una lista enlazada, la tarea es invertir la lista enlazada. Necesitamos invertir la lista cambiando los enlaces entre los Nodes. Ejemplos:  Input : Head of following linked list 1->2->3->4->NULL Output : Linked list should be changed to, 4->3->2->1->NULL Input : Head of following linked list 1->2->3->4->5->NULL Output : … Continue reading «Programa de Python para invertir una lista enlazada – Part 1»

Programa de Python para aplanar una lista enlazada

Dada una lista enlazada donde cada Node representa una lista enlazada y contiene dos punteros de su tipo:  Puntero al siguiente Node en la lista principal (lo llamamos puntero ‘derecho’ en el código a continuación). Puntero a una lista vinculada a la que se dirige este Node (lo llamamos el puntero ‘abajo’ en el código … Continue reading «Programa de Python para aplanar una lista enlazada»

Programa de Python para eliminar Nodes alternativos de una lista vinculada

Dada una lista enlazada individualmente, a partir del segundo Node, elimine todos los Nodes alternativos de la misma. Por ejemplo, si la lista enlazada dada es 1->2->3->4->5 entonces su función debería convertirla a 1->3->5, y si la lista enlazada dada es 1->2-> 3->4 luego conviértalo a 1->3. Método 1 (iterativo):  realice un seguimiento de la … Continue reading «Programa de Python para eliminar Nodes alternativos de una lista vinculada»

Programa de Python para encontrar el equivalente decimal de la lista enlazada binaria

Dada una lista unida de 0 y 1, encuentre su equivalente decimal. Input: 0->0->0->1->1->0->0->1->0 Output: 50 Input: 1->0->0 Output: 4 El valor decimal de una lista enlazada vacía se considera 0. Inicialice el resultado como 0. Recorra la lista enlazada y, para cada Node, multiplique el resultado por 2 y agréguele los datos del Node. … Continue reading «Programa de Python para encontrar el equivalente decimal de la lista enlazada binaria»

Apilar en Python

Una pila es una estructura de datos lineal que almacena elementos en forma de último en entrar/primero en salir (LIFO) o primero en entrar/último en salir (FILO). En la pila, se agrega un nuevo elemento en un extremo y se elimina un elemento solo de ese extremo. Las operaciones de inserción y eliminación a menudo … Continue reading «Apilar en Python»

Eliminar Nodes alternativos de una lista vinculada

Dada una lista enlazada individualmente, a partir del segundo Node, elimine todos los Nodes alternativos de la misma. Por ejemplo, si la lista enlazada dada es 1->2->3->4->5 entonces su función debería convertirla a 1->3->5, y si la lista enlazada dada es 1->2-> 3->4 luego conviértalo a 1->3.  Método 1 (iterativo)  Realice un seguimiento del anterior … Continue reading «Eliminar Nodes alternativos de una lista vinculada»