Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TERCER SEMESTRE
PARALELO A
ESTRUCTURAS DE DATOS
Autores:
Docente:
MACHALA - ECUADOR
SEPTIEMBRE, 2022
1
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
AUTORÍA:
f………………………………. f……………………………….
f………………………………. f……………………………….
2
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
f……………………………….
C.I.: 0706199593
3
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
Contenido
JUSTIFICACIÓN .................................................................................................... 6
OBJETIVOS ........................................................................................................... 7
ANTECEDENTES .................................................................................................. 8
Recursividad ..................................................................................................... 13
Tipos de recursividad..................................................................................... 14
REFERENCIAS ................................................................................................... 17
ANEXOS .............................................................................................................. 18
4
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
INDICE DE FIGURAS
INDICE DE TABLAS
5
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
JUSTIFICACIÓN
Del mismo modo, la importancia de los simuladores gráficos radica en que dichos
sistemas permiten simular el comportamiento de los datos y su almacenamiento,
posibilitando que se pueda visualizar las operaciones con las que la estructura
cuenta de forma que el usuario sea capaz de comprender el funcionamiento de las
mismas.
6
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
OBJETIVOS
Objetivo General.
Objetivo Específico.
7
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
ANTECEDENTES
Las operaciones CRUD (create, read, update, delete) son la base de gran parte de
las estructuras de datos, debido a su estrecha relación con la gestión de datos
puesto que logra realizar las funciones que el usuario necesite, de igual forma,
tienen como fin manipular los objetos en dependencia de la estructura de datos
aplicada, lo que asimismo conduce a la mejor selección de estructura para los
diferentes programas. [1]
Según la forma en que manejemos las operaciones CRUD estas podrían mejorar o
degradar el rendimiento.
Las funciones CRUD son las que distribuyen la carga entre los diferentes puntos
del sistema de información, tanto localmente (disco local), como remotamente
(base de datos, LDAP)
Por otro lado, se podría afirmar que la simulación permite experimentar con un
modelo del sistema para comprender mejor los procesos, con el fin de mejorar la
actividad en las empresas [2]
8
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
puesto a que a partir de las mismas se pueden desarrollar otros métodos aplicables
al programa que se desea realizar, de forma que se posibilita un aprendizaje rápido
y eficiente.
9
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
MARCO TEÓRICO
Estructuras de Datos
Es una colección de datos cuya organización se caracteriza por las funciones
definidas utilizadas para almacenar y acceder a elementos individuales de datos, a
su vez pueden descomponerse en los elementos que la forman [3]. La manera en
que se colocan los elementos dentro de la estructura afectará la forma en que se
realicen los accesos a cada elemento.
- Pilas
- Colas
- Listas
- Arrays
- Árboles
- Y demás
Pila (Stack)
Una pila (stack) es una colección ordenada de elementos a los cuales sólo se
puede acceder por un único lugar o extremo de la pila [1]. Los elementos se
agregan o se quitan de la pila únicamente por su parte superior (cima).
10
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
Apilar(push)
Se inicia con un nodo a insertar y, por supuesto un puntero que apunte a él,
además el puntero a la pila valdrá null, luego el nodo que apunte a null y la pila
apunte a nodo.
Figuras 1 Apilar
Fuente: https://sites.google.com/a/espe.edu.ec/programacion-ii/home/pila
11
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
Si la Pila solo tiene un nodo al utilizar la operación desapilar quedaría una Pila
vacía.
Si por el contrario se comprueba que la Pila está vacía se lanzará una excepción
(PilaVacia) y en este caso la operación desapilar no tendrá ningún efecto
Figuras 2 Desapilar
Fuente: https://sites.google.com/a/espe.edu.ec/programacion-ii/home/pila
12
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
Si se intenta utilizar una de estas operaciones en una pila vacía se lanzará una
excepción (Pila Vacía), y estas operaciones no tendrían ningún efecto.
Recursividad
El profesor John McCarthy del Massachusetts Institute of Technology, y
posteriormente de la Stanford University [2], conlleva el reconocimiento como ser
pionero en darse cuenta de la importancia de la recursión en los lenguajes de
programación.
La recursión (recursividad) es una herramienta muy potente en algunas
aplicaciones, sobre todo de cálculo, ésta a su vez es una alternativa a la repetición
o estructura repetitiva. La razón de que existan lenguajes que admiten la
recursividad se debe a la existencia de estructuras específicas tipo pilas (stack, en
inglés) para este tipo de procesos y memorias dinámicas [1]. Las direcciones de
retorno y el estado de cada subprograma se guardan en estructuras tipo pilas.
Se denomina la recursividad como un algoritmo que se puede implementar en la
codificación cumpliendo con el rol de que sus funciones logren invocarse a sí
mismas y se ejecuta las veces que sea necesaria para poder concluir el problema,
además la recursividad es una alternativa a las estructuras iterativas. Se deben
realizar las invocaciones necesarias y no sobrepasarse de esto, donde se logre
evitar que se genere una secuencia infinita de llamadas a sí misma, para que el
programa lo realice de una manera efectiva y cuando éste logre finalizar indicará
que la recursividad se encuentra correctamente definida.
13
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
Tipos de recursividad
La recursividad está clasificada en dependencia de características dentro del
método, por ende, existen los siguientes tipos:
14
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
Lenguaje de programación.
En Java podemos observar que para poder crear una pila es necesario obtener el
conocimiento teórico básico y para ello se debe hablar de su uso e implementación.
15
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
Existen otras operaciones útiles al usar pilas, como, por ejemplo, antes de apilar
una pila, lo más conveniente sería saber y verificar si es que la pila no esté vacía,
en Java esta operación se la conoce como empti, dándonos un pequeño vistazo a
la pila. Otra operación que es importante es peek, y esta se encarga de ver al
elemento que se encuentra en la cima de la pila, sin haber cambios en esta. Las
operaciones push, pop y peek, son muy comunes para la estructura de datos pila,
por lo que se conservarán dichos nombres en la implementación del código.
Entorno IDE
16
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
REFERENCIAS
17
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
ANEXOS
TERCER SEMESTRE
ESTRUCTURAS DE DATOS
TEMA
AUTORES
MAYO, 2022
18
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
REQUERIMIENTOS
1. Los entregables cumplirán las fechas asignadas y que constan en el aula virtual.
2. El lenguaje de programación de la aplicación es Java.
3. El programa contará con una interfaz gráfica de usuario con las opciones de
menú necesarias para simular gráficamente las operaciones de las estructuras
de datos tipo Pilas. Se garantizará la visualización completa de la estructura de
datos. Las opciones de menú son:
3.1. Crear Pila
3.2. Apilar un dato.
3.3. Desapilar
3.4. Decapitar
3.5. Pila Vacía
3.6. Limpiar Pila
3.7. Cima Pila
3.8. Tamaño Pila
3.9. Salir
4. Elaboración de un programa basado en código eficiente y limpio, siguiendo las
convenciones de Java.
Los aquí firmantes nos comprometemos a cumplir con todos los requerimientos
descritos bajo las condiciones del cronograma de actividades del proyecto. El
incumplimiento de este acuerdo afectará la calificación del proyecto y sus avances,
sin que esté sujeto a apelación alguna.
f………………………………. f……………………………….
Aguilar Gavilanes Kevin Alexander Barrezueta Ramón Carlos Isaac
C.I.: 0704013374 C.I.: 0750573719
19
Aguilar – Barrezueta – Carbo – Vilela – Cando
Proyecto Final de Estructura de Datos
f………………………………. f……………………………….
Cando Machuca Madelayne Cristina Carbo Valarezo Gislaine Tatiana
C.I.: 0706199593 C.I.: 0705887909
f……………………………….
Vilela Amaya Angels Kristine
C.I.: 0750604753
20
Aguilar – Barrezueta – Carbo – Vilela – Cando