1. República bolivariana de Venezuela
Instituto universitario de tecnología
“Antonio José de sucre”
Extensión san Felipe
Jhon Anton
C.I:31.184.245
Informática (78)
3 Semestre
Prof: Naudy Del Valle Albornoz
III CORTE 10%
DECLARACION DE LISTAS
San Felipe, Febrero 2024
2. Conceptos
Una lista es una estructura de datos que almacena una colección de elementos en
orden. Los elementos de una lista pueden ser de cualquier tipo de datos, como
números, cadenas o incluso otros objetos.
Características
Orden: Los elementos de una lista se almacenan en un orden específico.
Unicidad: Los elementos de una lista deben ser únicos. No se pueden repetir
dos veces el mismo elemento en una lista.
Dinamismo: Las listas son dinámicas, lo que significa que se pueden
agregar o eliminar elementos de la lista en cualquier momento.
Tipos
Hay tres tipos principales de listas:
Listas simples: Las listas simples son el tipo de lista más simple. Consisten
en una colección de elementos que están conectados entre sí mediante
punteros.
Listas enlazadas doblemente: Las listas enlazadas doblemente son
similares a las listas simples, pero cada elemento tiene dos punteros: uno al
siguiente elemento y otro al elemento anterior.
3. Listas circulares: Las listas circulares son un tipo especial de lista en la que
el último elemento apunta al primer elemento.
Usos de las listas
Las listas se utilizan en una amplia variedad de aplicaciones, incluyendo:
Almacenamiento de datos: Las listas se pueden utilizar para almacenar
cualquier tipo de datos, como números, cadenas o incluso otros objetos.
Implementación de algoritmos: Las listas se pueden utilizar para implementar
una variedad de algoritmos, como el ordenamiento y la búsqueda.
Representación de estructuras de datos: Las listas se pueden utilizar para
representar una variedad de estructuras de datos, como árboles y grafos.
4. Listas simples
class Nodo:
def __init__(self, dato):
self.dato = dato
self.siguiente = None
class ListaSimple:
def __init__(self):
self.primero = None
self.ultimo = None
def agregar(self, dato):
nuevo_nodo = Nodo(dato)
if self.primero is None:
self.primero = nuevo_nodo
self.ultimo = nuevo_nodo
else:
self.ultimo.siguiente = nuevo_nodo
self.ultimo = nuevo_nodo
def recorrer(self):
actual = self.primero
while actual is not None:
print(actual.dato)
actual = actual.siguiente
# Ejemplo de uso
6. actual = self.primero
while actual is not None:
print(actual.dato)
actual = actual.siguiente
# Ejemplo de uso
lista = ListaEnlazada()
lista.agregar(10)
lista.agregar(20)
lista.agregar(30)
lista.recorrer()
Listas circulares
class Nodo:
def __init__(self, dato):
self.dato = dato
self.siguiente = None
class ListaCircular:
def __init__(self):
self.primero = None
def agregar(self, dato):
nuevo_nodo = Nodo(dato)
if self.primero is None:
self.primero = nuevo_nodo
nuevo_nodo.siguiente = self.primero
else:
actual = self.primero
7. while actual.siguiente != self.primero:
actual = actual.siguiente
actual.siguiente = nuevo_nodo
nuevo_nodo.siguiente = self.primero
def recorrer(self):
actual = self.primero
while actual.siguiente != self.primero:
print(actual.dato)
actual = actual.siguiente
print(actual.dato) # Imprimir el último nodo
# Ejemplo de uso
lista = ListaCircular()
lista.agregar(10)
lista.agregar(20)
lista.agregar(30)
lista.recorrer()
Operaciones con listas:
Creación:
# Lista vacía
lista = []
# Lista con elementos
lista = [1, 2, 3, 4, 5]
8. # Lista con diferentes tipos de datos
lista = ["Hola", 10.5, True]
Inserción:
# Insertar al final
lista.append(6)
# Insertar al principio
lista.insert(0, "A")
# Insertar en una posición específica
lista.insert(2, "B")
Supresión
# Eliminar el último elemento
lista.pop()
# Eliminar el primer elemento
lista.pop(0)
# Eliminar un elemento por su posición
lista.pop(2)
# Eliminar un elemento por su valor
lista.remove("B")
Algoritmos con listas:
1. Búsqueda lineal:
def buscar_lineal(lista, elemento):
for i in range(len(lista)):
9. if lista[i] == elemento:
return i
return -1
# Ejemplo de uso
valor = buscar_lineal(lista, "B")
if valor != -1:
print(f"El elemento se encuentra en la posición {valor}")
else:
print("El elemento no se encuentra en la lista")
2. Ordenamiento por burbuja:
def ordenar_burbuja(lista):
for i in range(len(lista) - 1):
for j in range(len(lista) - i - 1):
if lista[j] > lista[j + 1]:
lista[j], lista[j + 1] = lista[j + 1], lista[j]
# Ejemplo de uso
ordenar_burbuja(lista)
print(lista)
3. Invertir lista:
def invertir_lista(lista):
lista_invertida = []
for i in range(len(lista) - 1, -1, -1):
lista_invertida.append(lista[i])
return lista_invertida
10. # Ejemplo de uso
lista_invertida = invertir_lista(lista)
print(lista_invertida)
4. Eliminar duplicados:
def eliminar_duplicados(lista):
lista_sin_duplicados = []
for elemento in lista:
if elemento not in lista_sin_duplicados:
lista_sin_duplicados.append(elemento)
return lista_sin_duplicados
# Ejemplo de uso
lista_sin_duplicados = eliminar_duplicados(lista)
print(lista_sin_duplicados)