Professional Documents
Culture Documents
Listas en El Área de Informática Luis - Fernandez 30926573 3er Semestre de Informática
Listas en El Área de Informática Luis - Fernandez 30926573 3er Semestre de Informática
Una lista es una estructura de datos que organiza elementos de manera secuencial, donde
cada elemento tiene una posición específica. Cada elemento en la lista se conoce como un nodo, y
cada nodo contiene datos y una referencia al siguiente nodo en la secuencia. Las listas son
fundamentales en programación y se utilizan para almacenar y manipular colecciones de datos de
manera eficiente.
Características:
• Secuencialidad: Los elementos en una lista están dispuestos en un orden secuencial.
Cada elemento tiene una posición específica y se puede acceder a ellos siguiendo esa
secuencia.
• Dinamismo: Las listas pueden cambiar en tamaño durante la ejecución del programa.
Puedes agregar o eliminar elementos fácilmente, lo que proporciona flexibilidad en la
gestión de datos.
• Acceso directo (en listas basadas en arreglos): En las listas basadas en arreglos,
el acceso a un elemento específico es rápido y directo utilizando su índice. Esto hace que
las operaciones de lectura sean eficientes.
Tipos:
• Listas enlazadas: En este tipo de lista, cada nodo contiene datos y un puntero
(referencia) al siguiente nodo en la secuencia. La última referencia suele ser nula para
indicar el final de la lista. Las listas enlazadas pueden ser simples, doblemente enlazadas
(donde cada nodo tiene referencias al anterior y al siguiente), o circulares (donde el último
nodo apunta al primero).
Características:
• Almacenamiento de datos secuenciales: Las listas se utilizan para
almacenar datos que tienen un orden específico y deben ser procesados en esa
secuencia.
• Implementación de estructuras de datos: Las listas sirven como la base
para implementar otras estructuras de datos más complejas, como pilas, colas,
filas de prioridad y listas doblemente enlazadas.
Lista Simple:
Estructura de datos lineal que organiza elementos de manera secuencial, donde cada
elemento (nodo) contiene un dato y una referencia al siguiente nodo en la secuencia. El último
nodo de la lista suele tener una referencia nula, indicando el final de la lista.
class Nodo:
def __init__(self, dato):
self.dato = dato
self.siguiente = None
nodo1 = Nodo(10)
nodo2 = Nodo(20)
nodo3 = Nodo(30)
nodo1.siguiente = nodo2
nodo2.siguiente = nodo3
current = nodo1
while current is not None:
print(current.dato, end=" -> ")
current = current.siguiente
print("None")
Lista Encuadernada/Enlazada:
Estructura de datos lineal que consta de nodos, donde cada nodo contiene datos y un
enlace (referencia) al siguiente nodo en la secuencia. El último nodo suele tener una referencia
nula, indicando el final de la lista. Puede ser una lista enlazada simple, doblemente enlazada o
circular.
class Nodo:
def __init__(self, dato):
self.dato = dato
self.siguiente = None
class ListaEnlazada:
def __init__(self):
self.cabeza = None
def imprimir_lista(self):
temp = self.cabeza
while temp is not None:
print(temp.dato, end=" -> ")
temp = temp.siguiente
print("None")
mi_lista_enlazada = ListaEnlazada()
mi_lista_enlazada.agregar_elemento_al_final(10)
mi_lista_enlazada.agregar_elemento_al_final(20)
mi_lista_enlazada.agregar_elemento_al_final(30)
mi_lista_enlazada.imprimir_lista()
Listas Circulares:
estructura de datos enlazada en la que el último nodo de la lista apunta al primer nodo, creando
un bucle cerrado. Cada nodo contiene un dato y un enlace al siguiente nodo en la secuencia. Las
listas circulares pueden ser simples o doblemente enlazadas.
class Nodo:
def __init__(self, dato):
self.dato = dato
self.siguiente = None
class ListaCircular:
def __init__(self):
self.cabeza = None
def imprimir_lista(self):
if self.cabeza is not None:
temp = self.cabeza
while True:
print(temp.dato, end=" -> ")
temp = temp.siguiente
if temp == self.cabeza:
break
print(" (Inicio de la lista)")
mi_lista_circular = ListaCircular()
mi_lista_circular.agregar_elemento(10)
mi_lista_circular.agregar_elemento(20)
mi_lista_circular.agregar_elemento(30)
mi_lista_circular.imprimir_lista()
# Python
mi_lista = [1, 2, 3, 4, 5]
• Inserción:
# Python
mi_lista.append(6)
mi_lista.insert(2, 7)
• Supresión:
# Python
mi_lista.remove(3)
del mi_lista[2]
Algoritmo de Listas:
inventario = []
def mostrar_inventario():
print("Inventario:")
for producto in inventario:
print(f"{producto['nombre']}: {producto['cantidad']} unidades")
agregar_producto("Camiseta", 50)
agregar_producto("Pantalón", 30)
actualizar_existencias("Camiseta", 20)
mostrar_inventario()