Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Jaime Farfán
PROGRAMA DE FORMACIÓN REGULAR jfarfan@tecsup.edu.pe
Laboratorio de Algoritmos y Estructuras de Datos Página 1 de 5
Alumno Nota
Grupo B
Ciclo III
Fecha de entrega 16/09/2023
I.- OBJETIVOS:
● Definir las reglas básicas para la creación de listas enlazadas
II.- SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del
hardware, conexiones eléctricas o de red; así como la
ingestión de alimentos o bebidas.
V.- RECURSOS:
● En este laboratorio cada alumno trabajará con un equipo con Windows 10.
VII.- PROCEDIMIENTO:
1.- Definir una lista con 10 elementos, agregar el elemento 11vo usando:
listado[posicion] = valor
¿Qué pasa?
En python ocurre un error que menciona que el índice está fuera del rango, ya que no existe la posición 10 en el
listado y esa no es la forma correcta de agregar un valor a una lista.
Laboratorio de Algoritmos y Estructuras de Datos Página 2 de 5
2.- Definir una lista con 10 elementos, agregar el elemento 11 avo en forma dinámica (append), ¿Qué pasa? si
tenemos la misma lista con 100000 elementos y se agrega un dato más, ¿Qué se puede concluir?
Se agrega con exito el 11avo elemento usando “append” y de igual manera se agregaría correctamente en una
lista de 100000 elementos.
3.- Definir una clase en Python e indicar la posición de memoria que usa.
Crearlo en al archivo laboratorio-03-01.py
Las clases no tienen un espacio en la memoria en sí, los que lo tienen son las instancias de objetos como en el
siguiente ejemplo.
Se imprimió la clase Node y solo mostro su nombre, en cambio al mostrar el valor de “a” siendo un objeto
instanciado de la clase Node nos muestra su posición en la memoria
# Constructor
def __init__(self):
self.data = None
self.next = None
node1 = Node()
Laboratorio de Algoritmos y Estructuras de Datos Página 3 de 5
node1.data = 10
node2 = Node()
node2.data = 20
node1.next = node2
print("node1.next -->",node1.next)
print("node2.next -->",node2.next)
# Constructor
def __init__(self):
self.head = None
self.length = 0
Laboratorio de Algoritmos y Estructuras de Datos Página 4 de 5
6.- Insertar datos al inicio de un Linked List agregar el siguiente método a la clase LinkedList
newNode = Node()
newNode.data = data
if self.length == 0:
self.head = newNode
else:
newNode.next = self.head
self.head = newNode
self.length += 1
Crear un Linked List con los siguientes datos: 10, 20, 30, 40
Laboratorio de Algoritmos y Estructuras de Datos Página 5 de 5
10 🡪 20 🡪 30 🡪 40 🡪 NULL
7.- Insertar datos al final de un Linked List agregar el siguiente método a la clase LinkedList
newNode = Node()
newNode.data = data
current = self.head
current.next = newNode
self.length += 1
Crear un Linked List con los siguientes datos: 50, 51, 52, 53, 54
50 🡪 51 🡪 52 🡪 53 🡪 54 🡪 NULL
8.- Insertar datos en una posición específica en el Linked List agregar el siguiente método a la clase LinkedList
count+= 1
current = current.next
newNode.next = current.next
current.next = newNode
self.length += 1
Crear un Linked List con los siguientes datos: 10, 20, 30, 40, 41, 42, 43, 44, 45, 50, 51, 52, 53, 54
9.- Liberación de datos en una posición específica en el Linked List agregar el siguiente método a la clase
LinkedList
CONCLUSIONES:
1. La práctica de laboratorio enseña cómo funcionan las listas enlazadas
haciendo uso de atributos como data y next que sirven para representar un
valor almacenado en la lista y un puntero al siguiente valor de la lista.
2. Tiene métodos como insertAtBegin que inserta un nuevo nodo al principio
de la lista, insertAtEnd que inserta un nuevo nodo al final de la lista y
finalmente insertAtPos que inserta un nuevo nodo en una posición
específica en la lista.
3. El método print(), asigna el valor de self.head a una variable “node”, para
recorrer en los valores de la lista, pero si se usa el metodo clear o la lista
de por sí ya está vacía, no recorre por la lista y finalmente imprime “NULL”