Ejercicio 16.8.1. Agregar a la clase ListaEnlazada un método next que vaya devolviendo uno a uno cada elemento de la lista, desde el primero hasta el último. Al llegar al final de la lista debe levantar una excepción de la clase StopIteration. Para el correcto funcionamiento de este método, ¿es necesario agregar un atributo adicional a la clase?

Ejercicio 16.8.2. Utilizando el método next del ejercicio anterior, redefinir el método __str__ de ListaEnlazada, para que se genere una salida legible de lo que contiene la lista, similar a las listas de python. Nota: este método debe devolver una cadena, no imprimirla por pantalla.

Ejercicio 16.8.3. Agregar a ListaEnlazada un método extend que reciba una ListaEnlazada y agregue a la lista actual los elementos que se encuentran en la lista recibida.

Ejercicio 16.8.4. Una lista circular es una lista cuyo último nodo está ligado al primero, de modo que es posible recorrerla infinitamente.

Escribir la clase ListaCircular, incluyendo los métodos insert, append, remove y pop.

Ejercicio 16.8.5. Una lista doblemente enlazada es una lista en la cual cada nodo tiene una referencia al anterior además de al próximo de modo que es posible recorrerla en ambas direcciones.

Escribir la clase ListaDobleEnlazada, incluyendo los métodos insert, append, remove y pop.

Ejercicio 16.8.6. Escribir un método de la clase ListaEnlazada que invierta el orden de la lista (es decir, el primer elemento queda como último y viceversa, y se invierte la dirección de todos los enlaces). Nota: operar directamente sobre los elementos de la lista.


Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.