Está en la página 1de 16

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

Programación de Estructura de Datos

PIA

Nombre Matricula
Estephanie Lisseth Sánchez Martínez 1896517
Marian Avila Camacho 1896383
Ahisar Gabriel Cantu Gomez 1895210
María Fernanda Chavez Puga 1898273
Claudia Abigail Ibarra Lozano 1896021

San Nicolás de los Garza, 15 de Noviembre de 2021


Índice
Introducción ........................................................................................................................................ 3
Cuerpo del trabajo .............................................................................................................................. 4
EJEMPLO .............................................................................................................................................. 7
Conclusiones ..................................................................................................................................... 15
Referencias ........................................................................................................................................ 16
Introducción
En este proyecto se seleccionaron tres funciones que distribuyen uniformemente
valores que cambian sus estados internos y permiten que los datos de entrada
generen diferente información de salida. Estas funciones se utilizan en diferentes
niveles que fueron codificados en lenguaje C. seguidamente se describen tres
estructuras utilizadas para el almacenamiento de elementos. Las estructuras
proporcionaran dos operaciones: empujar (insertar el nuevo elemento en la
estructura) y hacer estallar (eliminar algunos elementos de la estructura).

La pila es una estructura de datos básica en la que la inserción de nuevos


elementos tienen lugar en la parte superior y la eliminación de elementos también
se realiza desde la parte superior. La idea de la pila puede ser ilustrado por placas
apliadas una encima de la otra. Cada plato nuevo se coloca encima de la pila de
platos (operación de empuje), y los platos solo se pueden quitar de la parte
superior de la pila. (operación pop).

La pila se puede representar mediante una matriz para almacenar los elementos.
Aparte de la matriz, también debemos recordar el tamaño de la pila y debemos
asegurarnos de declarar suficiente espacio para la matriz (en la siguiente
implementación podemos almacenar N elementos).

La cola es una estructura de datos básica en la que se insertan nuevos elementos


en la parte posterior pero antiguos. Los elementos se eliminan del frente. La idea
de la cola se puede ilustrar con una línea de clientes en una tienda de
comestibles. Nuevas personas se unen al final de la cola y la siguiente en ser
atenido es el primer en la fila.

La cola se puede representar mediante una matriz para almacenar los elementos.
Aparte de la matriz, también debe recordar la parte delantera (cabeza) y la parte
trasera (cola) de la cola. Debemos estar seguros de declarar espacio suficiente
para la matriz (en la siguiente implementación podemos almacenar N-1 elementos
).

Una tabla hash o mapa es una estructura de datos que asocia llaves o claves con
valores. La operación principal que soporta de manera eficiente es la búsqueda:
permite el acceso a los elementos (teléfono y dirección, por ejemplo) almacenados
a partir de una clave generada usando el nombre, numero de cuenta o id. Funcion
transformando la clave con una funcion hash en un hash, un numero que la tabla
hash utiliza para localizar el valor deseado.

A continuación veremos un sistema realizado por el equipp 5 en base a los temas


vistos en clase
Cuerpo del trabajo
OBJETIVO E IMPACTO

Pilas y Colas: el objetivo de estas es almacenar y recuperara datos, siendo el


modo de acceso a sus elementos de tipo LIFO (del ingles Last In, First Out
<<ultimo en entrar, primero en salir>>). Esta estructura se aplica en multitud de
ocasiones en el área de informática debido a su simplicidad y ordenamiento
implícita de la propia estructura. El impacto de su uso se basa en

 Evaluación de expresiones en notación postfija (notación polaca inversa)


 Reconocedores sintácticos de lenguajes independientes del contexto.
 Implementación de recursividad.

Grafos: Su objetivo principal es manejar altos volúmenes de datos y ser fácilmente


procesados por motores de búsqueda o gestores de bases de datos orientados a
grafos, su impacto es muy grande ya que se utilizan en el manejo de cuencas
hidrográficas, en el manejo y la conservación de los recursos naturales, monitoreo
ambiental, entre otros. Como se tiene por entendido, estos sistemas facilitan la
visualización de datos que se han obtenido de un mapa, con el fin de mostrar y
comparar fenómenos geográficos de cualquier tipo, como pueden ser la
identificación de parcelas agrícolas o la densidad de una población en algún lugar
que se esté buscando.

Tablas hash: Su objetivo es almacenar un número elevado de datos sobre los que
se necesitan operaciones de búsqueda e inserción muy eficientes. Una tabla
hash almacena un conjunto de pares “(clave, valor)”. Y tienen un gran impacto al
usarse comúnmente en las herramientas de trabajo de cualquier estudiante como
Un diccionario, este es un ejemplo de estructura que se puede implementar
mediante una tabla hash. Para cada par, la clave es la palabra a buscar, y el valor
contiene su significado. El uso de esta estructura de datos es tan común en el
desarrollo de aplicaciones que algunos lenguajes las incluyen como tipos básicos.

Ventajas y desventajas
A continuación se muestran las ventajas y desventajas de cada una de los 4
métodos que utilizamos así como la ventaja y desventaja general de usarlas todos
juntos

Ventajas

Pilas y colas

- Con esta disposición se accede a cualquier elemento de la estructura de


datos en tiempo constante.
- No es preciso conocer la cantidad de elementos en tiempo de compilación.
Ni las inserciones ni las eliminaciones que implican realizar corrimientos de
los elementos de la lista.

Grafos

- Resultados en tiempo real.


- Presentación intuitiva y resumida de las relaciones.
- Estructuras flexibles y agiles.
- La velocidad de búsqueda depende únicamente del número de relaciones
concretas, no del conjunto de datos.

Tablas hash

- Una razón de ocupación no muy elevada.


- Una función de resumen que distribuya uniformemente las claves.

La ventaja de usar estos cuatro métodos, es que te hacen el trabajo mucho más
rápido y no batalles tanto al momento de hacer la programación, puedas encontrar
más rápido lo que buscas y está mejor acomodado.

Desventajas

Pilas y colas

- Al asignar el arreglo en tiempo de compilación debe establecerse un límite


a priori sobre el número de elementos que pueden ser almacenados en las
listas.
- Para inserciones y eliminaciones frecuentes hay que hacer corrimientos
costosos.
- No permite el acceso directo a un elemento arbitrario de la lista, tenemos
que recorrer todo para llegar al elemento deseado.

Grafos

- Es difícil de escalar, por estar diseñado para arquitecturas con un solo


servidor.
- Sin lenguaje de consulta consistente.

Tablas hash

- Necesidad de ampliar el espacio de la tabla si el volumen de datos


almacenados crece. Se trata de una operación costosa.
- Dificultad para recorrer todos los elementos. Se suelen emplear listas para
procesar la totalidad de los elementos.
- Desaprovechamiento de la memoria. Si se reserva espacio para todos los
posibles elementos, se consume más memoria de la necesaria; se suele
resolver reservando espacio únicamente para punteros a los elementos.

La desventaja de utilizar estos métodos, es que tienes que recorrer todo cuando
buscas información en específico, también al utilizarlos al momento de que se
genere un error tienes que modificar muchas cosas y quitan mucha memoria que
se podría utilizar para otras cosas.
EJEMPLO
Conclusiones
Estephanie Lisseth Sánchez Martínez 1896517

En esta practica aplicamos el uso de todos los métodos que estuvimos viendo en
clase y de la misma forma que ya habíamos practicado en cada una de las tareas
pasadas, este trabajo nos ayudo mucho a terminar de entender mejor todo lo visito
en clase y a saber mejor sobre su aplicación y de la forma que podemos utilizarlos
juntos.

Marian Avila Camacho 1896383

En este semestre reforzamos el conocimiento de la programación que aprendí


hace unos semestres con la realización de pia y otros trabajos que se hicieron
durante lo largo que fue el semestre, aprendí mas del lenguaje C y de las
diferentes librerías que tiene el C++ y al igual sus funciones.

Ahisar Gabriel Cantú Gómez 1895210

Ya como ultimo en esta ocasión utilizamos todos los conocimientos puestos en un


menú para ver las diferencias individuales de cada opción para ordenamiento de
valores, sus usos y similitudes se pueden ver fácilmente y saber para que tipos de
cosas se pueden usar en la vida diaria.

María Fernanda Chávez Puga 1898273

Durante la realización de este proyecto aparte de aprender acerca de los usos de


cada uno de las herramientas vistas durante todo el semestre, aprendí acerca de
su uso en la vida cotidiana en las diferentes ramas de las áreas laborales, desde la
pequeña hasta las grandes empresas hacen uso de esto, espero aprender mas en
el futuro y aplicar mis conocimientos en mi lugar de trabajo.

Claudia Abigail Ibarra Lozano 1896021

Durante la realización del proyecto integrador puse en práctica conocimientos


vistos durante el semestre como son los temas de la las tablas de dispersión, pilas
y colas. Fue interesante saber su funcionamiento y sus aplicaciones. Pienso que
su concepto es muy importante en computación y en especial en teoría de
leguajes de programación.

Referencias
https://es.slideshare.net/YorkaMarisolPerezFeliz/listaspilas-y-colas-estructura-de-datos

https://delfino.cr/2020/10/la-utilidad-y-aplicacion-de-los-grafos-y-sistemas-de-informacion-
geografica

http://www.it.uc3m.es/pbasanta/asng/course_notes/ch07.html

https://www.ionos.mx/digitalguide/hosting/cuestiones-tecnicas/graph-database/

También podría gustarte