17.2. La clase Nodo

Como es habitual cuando se escribe una clase, comenzaremos con los métodos de inicialización y __str__ , para poder comprobar el mecanismo básico de crear y mostrar el nuevo tipo:

   1: class Nodo:

   2:     def __init__(self, carga=None, siguiente=None):

   3:         self.carga = carga

   4:         self.siguiente = siguiente

   5:     def __str__(self):

   6:         return str(self.carga)

Como es habitual, los parámetros para el metodo de inicialización son opcionales. Por defecto, la carga y el enlace, siguiente, se ponen a None.

La representación alfanumérica de un nodo es únicamente la de la carga. Como se puede pasar cualquier valor a la función str, podemos guardar cualquier valor en una lista.

Para comprobar la implementación en este punto, podemos crear un Nodo e imprimirlo:

   1: >>> nodo = Nodo("prueba")

   2: >>> print nodo

   3: prueba

Para hacerlo más interesante, necesitaremos una lista que contenga más de un nodo:

   1: >>> nodo1 = Nodo(1)

   2: >>> nodo2 = Nodo(2)

   3: >>> nodo3 = Nodo(3)

Este código crea tres nodos, pero aun no tenemos una lista porque los nodos todavía no están enlazados. El diagrama de estados tiene el siguiente aspecto:

Sin título2

Para enlazar los nodos, debemos hacer que el primer nodo haga referencia al segundo, y que este haga referencia al tercero:

   1: >>> nodo1.siguiente = nodo2

   2: >>> nodo2.siguiente = nodo3

 

La referencia del tercer nodo será None, que indica que es el final de la lista.

Ahora el diagrama de estados tendrá el siguiente aspecto:

Sin título3

Ahora ya sabe como crear nodos y enlazarlos en listas. Lo que podría estar menos claro es por que.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s