class Node:
def __init__(self,value):
self.value = value
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def add_front(self,value):
new_node = Node(value)
new_node.next = self.head
self.head = new_node
def add_back(self,value):
new_node = Node(value)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next is not None:
current = current.next
current.next = new_node
def print_list(self):
current = self.head
while current is not None:
print(current.value)
current = current.next
list1 = LinkedList()
list1.add_front(1)
list1.add_front(2)
list1.add_back(3)
list1.print_list()
1. Clase de nodo:
- Representa un elemento individual en la lista vinculada.
- Cada nodo tiene dos atributos: valor para almacenar datos y siguiente para apuntar al siguiente nodo de la lista.
- Cuando se crea un nodo, su siguiente puntero se establece en Ninguno.
2. Clase de lista vinculada:
- Administra las operaciones de la lista vinculada.
- Tiene un encabezado de atributo que es el punto de partida de la lista vinculada. Inicialmente, el encabezado está configurado en Ninguno ya que la lista está vacía.
3. Método add_front:
- Agrega un nuevo nodo al frente de la lista vinculada.
- Se crea un nuevo Nodo con el valor dado.
- El siguiente puntero del nuevo nodo se establece en el encabezado actual de la lista.
- El encabezado de la lista luego se actualiza al nuevo nodo.
4. Método add_back:
- Agrega un nuevo nodo al final de la lista vinculada.
- Se crea un nuevo Nodo con el valor dado.
- Si la lista está vacía (es decir, el encabezado es Ninguno), el nuevo nodo se establece como encabezado.
- Si la lista no está vacía, recorre hasta el final de la lista y luego actualiza el siguiente puntero del último nodo para que apunte al nuevo nodo.
5. Método print_list:
- Imprime todos los valores de la lista vinculada desde el principio hasta el final.
- Comienza desde el encabezado y recorre cada nodo usando el siguiente puntero hasta llegar al final (Ninguno), imprimiendo el valor de cada nodo.
6. Ejemplo de uso:
- Se crea una instancia de LinkedList.
- add_front se llama dos veces para agregar nodos con valores 1 y 2 al frente de la lista.
- se llama a add_back para agregar un nodo con valor 3 al final de la lista.
Se llama a - print_list para imprimir los valores de todos los nodos en la lista vinculada. El resultado es 2, 1, 3, lo que muestra que los nodos se agregaron correctamente.