Proyecto 2: Aplicación de Libro de Contactos
Implementando la Estructura Básica
Bienvenido al Proyecto 2, donde aplicaremos nuestros conocimientos de los capítulos anteriores para crear algo práctico y atractivo: una Aplicación de Libreta de Contactos. Este proyecto es una excelente manera de ver cómo las estructuras de datos como los árboles de búsqueda binaria (BSTs) pueden ser utilizados en aplicaciones del mundo real. Nuestra libreta de contactos permitirá a los usuarios agregar, eliminar, buscar y listar contactos. La funcionalidad de búsqueda estará alimentada por la búsqueda binaria, lo que hará el proceso eficiente incluso con un gran número de contactos.
Este proyecto no solo reforzará tu comprensión de los BSTs y la búsqueda binaria, sino que también te dará experiencia práctica en la construcción de una aplicación funcional.
El primer paso en nuestro proyecto es definir la estructura básica para almacenar la información de contacto. Utilizaremos un árbol de búsqueda binaria, donde cada nodo representará un contacto con detalles como nombre, número de teléfono y correo electrónico.
1. Definiendo un Nodo de Contacto
Cada contacto será un nodo en nuestro BST. Empecemos por definir la estructura de un nodo.
class ContactNode:
def __init__(self, name, phone, email):
self.name = name
self.phone = phone
self.email = email
self.left = None
self.right = None
Aquí, nombre
, telefono
y correo
son los detalles del contacto, mientras que izquierda
y derecha
apuntarán a los hijos izquierdo y derecho del nodo en el árbol, respectivamente.
2. Construyendo el Árbol de Búsqueda Binaria
Ahora, creemos la estructura BST para mantener estos contactos. Implementaremos el método de inserción, que nos permitirá agregar nuevos contactos.
class ContactBookBST:
def __init__(self):
self.root = None
def insert(self, root, node):
if root is None:
return node
if node.name < root.name:
root.left = self.insert(root.left, node)
else:
root.right = self.insert(root.right, node)
return root
def add_contact(self, name, phone, email):
new_contact = ContactNode(name, phone, email)
if self.root is None:
self.root = new_contact
else:
self.insert(self.root, new_contact)
En esta clase ContactBookBST
, definimos un método add_contact
para agregar nuevos contactos. Los contactos se insertan en el BST basándose en el orden alfabético de sus nombres.
3. Prueba de Inserción Básica:
Probemos la estructura básica agregando algunos contactos.
# Example Usage
contact_book = ContactBookBST()
contact_book.add_contact("Alice", "123-456-7890", "alice@email.com")
contact_book.add_contact("Bob", "987-654-3210", "bob@email.com")
# At this point, we have added two contacts to our contact book.
Esto prepara el escenario para nuestra aplicación de libreta de contactos. Hemos establecido una estructura fundamental para almacenar y organizar contactos de manera eficiente utilizando un BST. A medida que avancemos, agregaremos más funciones como la búsqueda de un contacto utilizando búsqueda binaria, eliminar un contacto y enumerar todos los contactos.
Implementando la Estructura Básica
Bienvenido al Proyecto 2, donde aplicaremos nuestros conocimientos de los capítulos anteriores para crear algo práctico y atractivo: una Aplicación de Libreta de Contactos. Este proyecto es una excelente manera de ver cómo las estructuras de datos como los árboles de búsqueda binaria (BSTs) pueden ser utilizados en aplicaciones del mundo real. Nuestra libreta de contactos permitirá a los usuarios agregar, eliminar, buscar y listar contactos. La funcionalidad de búsqueda estará alimentada por la búsqueda binaria, lo que hará el proceso eficiente incluso con un gran número de contactos.
Este proyecto no solo reforzará tu comprensión de los BSTs y la búsqueda binaria, sino que también te dará experiencia práctica en la construcción de una aplicación funcional.
El primer paso en nuestro proyecto es definir la estructura básica para almacenar la información de contacto. Utilizaremos un árbol de búsqueda binaria, donde cada nodo representará un contacto con detalles como nombre, número de teléfono y correo electrónico.
1. Definiendo un Nodo de Contacto
Cada contacto será un nodo en nuestro BST. Empecemos por definir la estructura de un nodo.
class ContactNode:
def __init__(self, name, phone, email):
self.name = name
self.phone = phone
self.email = email
self.left = None
self.right = None
Aquí, nombre
, telefono
y correo
son los detalles del contacto, mientras que izquierda
y derecha
apuntarán a los hijos izquierdo y derecho del nodo en el árbol, respectivamente.
2. Construyendo el Árbol de Búsqueda Binaria
Ahora, creemos la estructura BST para mantener estos contactos. Implementaremos el método de inserción, que nos permitirá agregar nuevos contactos.
class ContactBookBST:
def __init__(self):
self.root = None
def insert(self, root, node):
if root is None:
return node
if node.name < root.name:
root.left = self.insert(root.left, node)
else:
root.right = self.insert(root.right, node)
return root
def add_contact(self, name, phone, email):
new_contact = ContactNode(name, phone, email)
if self.root is None:
self.root = new_contact
else:
self.insert(self.root, new_contact)
En esta clase ContactBookBST
, definimos un método add_contact
para agregar nuevos contactos. Los contactos se insertan en el BST basándose en el orden alfabético de sus nombres.
3. Prueba de Inserción Básica:
Probemos la estructura básica agregando algunos contactos.
# Example Usage
contact_book = ContactBookBST()
contact_book.add_contact("Alice", "123-456-7890", "alice@email.com")
contact_book.add_contact("Bob", "987-654-3210", "bob@email.com")
# At this point, we have added two contacts to our contact book.
Esto prepara el escenario para nuestra aplicación de libreta de contactos. Hemos establecido una estructura fundamental para almacenar y organizar contactos de manera eficiente utilizando un BST. A medida que avancemos, agregaremos más funciones como la búsqueda de un contacto utilizando búsqueda binaria, eliminar un contacto y enumerar todos los contactos.
Implementando la Estructura Básica
Bienvenido al Proyecto 2, donde aplicaremos nuestros conocimientos de los capítulos anteriores para crear algo práctico y atractivo: una Aplicación de Libreta de Contactos. Este proyecto es una excelente manera de ver cómo las estructuras de datos como los árboles de búsqueda binaria (BSTs) pueden ser utilizados en aplicaciones del mundo real. Nuestra libreta de contactos permitirá a los usuarios agregar, eliminar, buscar y listar contactos. La funcionalidad de búsqueda estará alimentada por la búsqueda binaria, lo que hará el proceso eficiente incluso con un gran número de contactos.
Este proyecto no solo reforzará tu comprensión de los BSTs y la búsqueda binaria, sino que también te dará experiencia práctica en la construcción de una aplicación funcional.
El primer paso en nuestro proyecto es definir la estructura básica para almacenar la información de contacto. Utilizaremos un árbol de búsqueda binaria, donde cada nodo representará un contacto con detalles como nombre, número de teléfono y correo electrónico.
1. Definiendo un Nodo de Contacto
Cada contacto será un nodo en nuestro BST. Empecemos por definir la estructura de un nodo.
class ContactNode:
def __init__(self, name, phone, email):
self.name = name
self.phone = phone
self.email = email
self.left = None
self.right = None
Aquí, nombre
, telefono
y correo
son los detalles del contacto, mientras que izquierda
y derecha
apuntarán a los hijos izquierdo y derecho del nodo en el árbol, respectivamente.
2. Construyendo el Árbol de Búsqueda Binaria
Ahora, creemos la estructura BST para mantener estos contactos. Implementaremos el método de inserción, que nos permitirá agregar nuevos contactos.
class ContactBookBST:
def __init__(self):
self.root = None
def insert(self, root, node):
if root is None:
return node
if node.name < root.name:
root.left = self.insert(root.left, node)
else:
root.right = self.insert(root.right, node)
return root
def add_contact(self, name, phone, email):
new_contact = ContactNode(name, phone, email)
if self.root is None:
self.root = new_contact
else:
self.insert(self.root, new_contact)
En esta clase ContactBookBST
, definimos un método add_contact
para agregar nuevos contactos. Los contactos se insertan en el BST basándose en el orden alfabético de sus nombres.
3. Prueba de Inserción Básica:
Probemos la estructura básica agregando algunos contactos.
# Example Usage
contact_book = ContactBookBST()
contact_book.add_contact("Alice", "123-456-7890", "alice@email.com")
contact_book.add_contact("Bob", "987-654-3210", "bob@email.com")
# At this point, we have added two contacts to our contact book.
Esto prepara el escenario para nuestra aplicación de libreta de contactos. Hemos establecido una estructura fundamental para almacenar y organizar contactos de manera eficiente utilizando un BST. A medida que avancemos, agregaremos más funciones como la búsqueda de un contacto utilizando búsqueda binaria, eliminar un contacto y enumerar todos los contactos.
Implementando la Estructura Básica
Bienvenido al Proyecto 2, donde aplicaremos nuestros conocimientos de los capítulos anteriores para crear algo práctico y atractivo: una Aplicación de Libreta de Contactos. Este proyecto es una excelente manera de ver cómo las estructuras de datos como los árboles de búsqueda binaria (BSTs) pueden ser utilizados en aplicaciones del mundo real. Nuestra libreta de contactos permitirá a los usuarios agregar, eliminar, buscar y listar contactos. La funcionalidad de búsqueda estará alimentada por la búsqueda binaria, lo que hará el proceso eficiente incluso con un gran número de contactos.
Este proyecto no solo reforzará tu comprensión de los BSTs y la búsqueda binaria, sino que también te dará experiencia práctica en la construcción de una aplicación funcional.
El primer paso en nuestro proyecto es definir la estructura básica para almacenar la información de contacto. Utilizaremos un árbol de búsqueda binaria, donde cada nodo representará un contacto con detalles como nombre, número de teléfono y correo electrónico.
1. Definiendo un Nodo de Contacto
Cada contacto será un nodo en nuestro BST. Empecemos por definir la estructura de un nodo.
class ContactNode:
def __init__(self, name, phone, email):
self.name = name
self.phone = phone
self.email = email
self.left = None
self.right = None
Aquí, nombre
, telefono
y correo
son los detalles del contacto, mientras que izquierda
y derecha
apuntarán a los hijos izquierdo y derecho del nodo en el árbol, respectivamente.
2. Construyendo el Árbol de Búsqueda Binaria
Ahora, creemos la estructura BST para mantener estos contactos. Implementaremos el método de inserción, que nos permitirá agregar nuevos contactos.
class ContactBookBST:
def __init__(self):
self.root = None
def insert(self, root, node):
if root is None:
return node
if node.name < root.name:
root.left = self.insert(root.left, node)
else:
root.right = self.insert(root.right, node)
return root
def add_contact(self, name, phone, email):
new_contact = ContactNode(name, phone, email)
if self.root is None:
self.root = new_contact
else:
self.insert(self.root, new_contact)
En esta clase ContactBookBST
, definimos un método add_contact
para agregar nuevos contactos. Los contactos se insertan en el BST basándose en el orden alfabético de sus nombres.
3. Prueba de Inserción Básica:
Probemos la estructura básica agregando algunos contactos.
# Example Usage
contact_book = ContactBookBST()
contact_book.add_contact("Alice", "123-456-7890", "alice@email.com")
contact_book.add_contact("Bob", "987-654-3210", "bob@email.com")
# At this point, we have added two contacts to our contact book.
Esto prepara el escenario para nuestra aplicación de libreta de contactos. Hemos establecido una estructura fundamental para almacenar y organizar contactos de manera eficiente utilizando un BST. A medida que avancemos, agregaremos más funciones como la búsqueda de un contacto utilizando búsqueda binaria, eliminar un contacto y enumerar todos los contactos.