Menu iconMenu icon
Algoritmos y Estructuras de Datos con Python

Capítulo 3: Contenedores de Datos Elementales

Ejercicios Prácticos: Capítulo 3

Ejercicio 1

Crea una lista en Python de los primeros diez números primos y luego usa la división para obtener los números primos del 3 al 7 de la lista.

Solución:

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
subset_primes = primes[2:7]
print(subset_primes)  # Output: [5, 7, 11, 13, 17]

Ejercicio 2

Crea un conjunto de vocales y luego determina si las letras 'a' y 'b' están en el conjunto.

Solución:

vowels = {'a', 'e', 'i', 'o', 'u'}
print('a' in vowels)  # Output: True
print('b' in vowels)  # Output: False

Ejercicio 3

Define un diccionario que almacene el número atómico (como clave) y el símbolo (como valor) para los elementos Hidrógeno, Helio y Carbono. Obtiene el símbolo del Helio.

Solución:

elements = {
    1: 'H',    # Hydrogen
    2: 'He',   # Helium
    6: 'C'     # Carbon
}
print(elements[2])  # Output: He

Ejercicio 4

Crea una clase básica Rectángulo que tenga atributos para altura y ancho y un método para calcular el área.

Solución:

class Rectangle:
    def __init__(self, height, width):
        self.height = height
        self.width = width

    def area(self):
        return self.height * self.width

# Example Usage:
rect = Rectangle(5, 10)
print(rect.area())  # Output: 50

Ejercicio 5

Implementa una pila simple usando listas de Python. La pila debe tener métodos para empujar, sacar y verificar si la pila está vacía.

Solución:

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()

    def is_empty(self):
        return len(self.items) == 0

# Example Usage:
stack = Stack()
stack.push(5)
stack.push(10)
print(stack.pop())  # Output: 10
print(stack.is_empty())  # Output: False

Ejercicio 6

Crea una lista enlazada simple con nodos que almacenan enteros. Implementa un método para agregar un nuevo nodo al final de la lista.

Solución:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        last_node = self.head
        while last_node.next:
            last_node = last_node.next
        last_node.next = new_node

# Example Usage:
ll = LinkedList()
ll.append(5)
ll.append(10)

Estos ejercicios están diseñados para reforzar los conceptos discutidos en el Capítulo 3 y proporcionar experiencia práctica con las estructuras de datos integradas de Python, los principios de orientación a objetos y algunas estructuras de datos elementales.

Ejercicios Prácticos: Capítulo 3

Ejercicio 1

Crea una lista en Python de los primeros diez números primos y luego usa la división para obtener los números primos del 3 al 7 de la lista.

Solución:

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
subset_primes = primes[2:7]
print(subset_primes)  # Output: [5, 7, 11, 13, 17]

Ejercicio 2

Crea un conjunto de vocales y luego determina si las letras 'a' y 'b' están en el conjunto.

Solución:

vowels = {'a', 'e', 'i', 'o', 'u'}
print('a' in vowels)  # Output: True
print('b' in vowels)  # Output: False

Ejercicio 3

Define un diccionario que almacene el número atómico (como clave) y el símbolo (como valor) para los elementos Hidrógeno, Helio y Carbono. Obtiene el símbolo del Helio.

Solución:

elements = {
    1: 'H',    # Hydrogen
    2: 'He',   # Helium
    6: 'C'     # Carbon
}
print(elements[2])  # Output: He

Ejercicio 4

Crea una clase básica Rectángulo que tenga atributos para altura y ancho y un método para calcular el área.

Solución:

class Rectangle:
    def __init__(self, height, width):
        self.height = height
        self.width = width

    def area(self):
        return self.height * self.width

# Example Usage:
rect = Rectangle(5, 10)
print(rect.area())  # Output: 50

Ejercicio 5

Implementa una pila simple usando listas de Python. La pila debe tener métodos para empujar, sacar y verificar si la pila está vacía.

Solución:

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()

    def is_empty(self):
        return len(self.items) == 0

# Example Usage:
stack = Stack()
stack.push(5)
stack.push(10)
print(stack.pop())  # Output: 10
print(stack.is_empty())  # Output: False

Ejercicio 6

Crea una lista enlazada simple con nodos que almacenan enteros. Implementa un método para agregar un nuevo nodo al final de la lista.

Solución:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        last_node = self.head
        while last_node.next:
            last_node = last_node.next
        last_node.next = new_node

# Example Usage:
ll = LinkedList()
ll.append(5)
ll.append(10)

Estos ejercicios están diseñados para reforzar los conceptos discutidos en el Capítulo 3 y proporcionar experiencia práctica con las estructuras de datos integradas de Python, los principios de orientación a objetos y algunas estructuras de datos elementales.

Ejercicios Prácticos: Capítulo 3

Ejercicio 1

Crea una lista en Python de los primeros diez números primos y luego usa la división para obtener los números primos del 3 al 7 de la lista.

Solución:

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
subset_primes = primes[2:7]
print(subset_primes)  # Output: [5, 7, 11, 13, 17]

Ejercicio 2

Crea un conjunto de vocales y luego determina si las letras 'a' y 'b' están en el conjunto.

Solución:

vowels = {'a', 'e', 'i', 'o', 'u'}
print('a' in vowels)  # Output: True
print('b' in vowels)  # Output: False

Ejercicio 3

Define un diccionario que almacene el número atómico (como clave) y el símbolo (como valor) para los elementos Hidrógeno, Helio y Carbono. Obtiene el símbolo del Helio.

Solución:

elements = {
    1: 'H',    # Hydrogen
    2: 'He',   # Helium
    6: 'C'     # Carbon
}
print(elements[2])  # Output: He

Ejercicio 4

Crea una clase básica Rectángulo que tenga atributos para altura y ancho y un método para calcular el área.

Solución:

class Rectangle:
    def __init__(self, height, width):
        self.height = height
        self.width = width

    def area(self):
        return self.height * self.width

# Example Usage:
rect = Rectangle(5, 10)
print(rect.area())  # Output: 50

Ejercicio 5

Implementa una pila simple usando listas de Python. La pila debe tener métodos para empujar, sacar y verificar si la pila está vacía.

Solución:

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()

    def is_empty(self):
        return len(self.items) == 0

# Example Usage:
stack = Stack()
stack.push(5)
stack.push(10)
print(stack.pop())  # Output: 10
print(stack.is_empty())  # Output: False

Ejercicio 6

Crea una lista enlazada simple con nodos que almacenan enteros. Implementa un método para agregar un nuevo nodo al final de la lista.

Solución:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        last_node = self.head
        while last_node.next:
            last_node = last_node.next
        last_node.next = new_node

# Example Usage:
ll = LinkedList()
ll.append(5)
ll.append(10)

Estos ejercicios están diseñados para reforzar los conceptos discutidos en el Capítulo 3 y proporcionar experiencia práctica con las estructuras de datos integradas de Python, los principios de orientación a objetos y algunas estructuras de datos elementales.

Ejercicios Prácticos: Capítulo 3

Ejercicio 1

Crea una lista en Python de los primeros diez números primos y luego usa la división para obtener los números primos del 3 al 7 de la lista.

Solución:

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
subset_primes = primes[2:7]
print(subset_primes)  # Output: [5, 7, 11, 13, 17]

Ejercicio 2

Crea un conjunto de vocales y luego determina si las letras 'a' y 'b' están en el conjunto.

Solución:

vowels = {'a', 'e', 'i', 'o', 'u'}
print('a' in vowels)  # Output: True
print('b' in vowels)  # Output: False

Ejercicio 3

Define un diccionario que almacene el número atómico (como clave) y el símbolo (como valor) para los elementos Hidrógeno, Helio y Carbono. Obtiene el símbolo del Helio.

Solución:

elements = {
    1: 'H',    # Hydrogen
    2: 'He',   # Helium
    6: 'C'     # Carbon
}
print(elements[2])  # Output: He

Ejercicio 4

Crea una clase básica Rectángulo que tenga atributos para altura y ancho y un método para calcular el área.

Solución:

class Rectangle:
    def __init__(self, height, width):
        self.height = height
        self.width = width

    def area(self):
        return self.height * self.width

# Example Usage:
rect = Rectangle(5, 10)
print(rect.area())  # Output: 50

Ejercicio 5

Implementa una pila simple usando listas de Python. La pila debe tener métodos para empujar, sacar y verificar si la pila está vacía.

Solución:

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()

    def is_empty(self):
        return len(self.items) == 0

# Example Usage:
stack = Stack()
stack.push(5)
stack.push(10)
print(stack.pop())  # Output: 10
print(stack.is_empty())  # Output: False

Ejercicio 6

Crea una lista enlazada simple con nodos que almacenan enteros. Implementa un método para agregar un nuevo nodo al final de la lista.

Solución:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        last_node = self.head
        while last_node.next:
            last_node = last_node.next
        last_node.next = new_node

# Example Usage:
ll = LinkedList()
ll.append(5)
ll.append(10)

Estos ejercicios están diseñados para reforzar los conceptos discutidos en el Capítulo 3 y proporcionar experiencia práctica con las estructuras de datos integradas de Python, los principios de orientación a objetos y algunas estructuras de datos elementales.