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.

0