estructurade datos

12
INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO Ingeniería en Sistemas Computacionales. Asignatura: Estructura de Datos Unidad 1 Diapositivas: Evidencia de la unidad 1 Tipos de datos abstractos-Memoria estática y dinámica. Profesor: MTI. Niels Henryk Aranda Cuevas Alumno: David Elizama Pool Chan Aula: “J3” Grupo: “A” Felipe Carrillo Puerto Quintana Roo a 28/09/2014

Upload: davidelizama

Post on 10-Jul-2015

48 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Estructurade datos

INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO

Ingeniería en Sistemas Computacionales.

Asignatura: Estructura de Datos

Unidad 1

Diapositivas: Evidencia de la unidad 1

Tipos de datos abstractos-Memoria estática y dinámica.

Profesor: MTI. Niels Henryk Aranda Cuevas

Alumno: David Elizama Pool Chan

Aula: “J3” Grupo: “A”

Felipe Carrillo Puerto Quintana Roo a 28/09/2014

Page 2: Estructurade datos

Tipos de Datos Abstractos

Un Tipo de Dato Abstracto (TDA) es un tipo de dato definido por el

programador, si los tipos de datos existentes en el lenguaje no son suficientes

o no son eficientes para ciertas aplicaciones, la mayoría de los lenguajes de

programación permiten al usuario definir sus propios tipos de datos, consiste

en establecer los elementos de que consta el tipo así como las operaciones

que se pueden realizar con instancias de este tipo.

Page 3: Estructurade datos

Declaración

Para declarar un TDA se debe:

• struct: define una estructura de datos; se dice que permite crear un tipo de

datos que está compuesto de uno o varios elementos denominados campos.

• typedef: se utiliza para definir el “alias” o sinónimo de un tipo de datos.

1. Establecer la definición del tipo

2. Definir también las operaciones (funciones y procedimientos) que pueden operar

con dicho tipo.

3. Ocultar la presentación de los elementos del tipo de modo que sólo se puede

trabajar con ellos usando los procedimientos definidos en 2)

4. Poder crear instancias múltiples del tipo

La declaración de TDA’s requiere al menos el uso de dos palabras reservadas en

C++ (struct, typedef ).

Page 4: Estructurade datos

Nuevo TDA

Elementos del TDA

La sintaxis de las dos palabras claves incluidas aquí es la siguiente:

struct identificador_1 { nombre_del_Tipo elemento_1; nombre_del_Tipo elemento_2; … nombre_del_Tipo elemento_n; };typedef struct identificador_1sinonimo;

Primerapalabra clave

Segundapalabra clave

Page 5: Estructurade datos

Operaciones sobre un TDA

Tipos básicos de operaciones que se aplican a un TDA :

Ejemplo:

1. Construcción: Crean una nueva instancia del tipo.

2. Transformación: Cambian el valor de uno o más elementos del tipo.

3. Observación: Permiten determinar el valor de uno o más elementos de un tipo sin

modificarlos.

4. Iteradores: Permiten procesar todo los elementos de un TDA en forma secuencial.

Gabriel.edad = 25;

Antonio.altura = 1.76;

Luego del nombre de la estructuras el

acceso a sus elementos se realiza usando

un punto y el nombre del elemento al quese quiere acceder.

Elementos

Logrado el acceso, los elementos de estas estructuras se pueden manipular como

cualquier otra variable de su mismo tipo.

Page 6: Estructurade datos

Aplicaciones tradicionales de los TDA para la definición de una pila

o de una lista :

1. Pila: es una colección dinámica de datos de un mismo tipo, en la que los

elementos se insertan y se extraen por un mismo extremo.

2. Lista: también es una colección dinámica de datos de un mismo tipo, pero

en este caso el acceso a cada uno de los elementos es por posición; se

considera aquí que cada elemento de la lista tiene un único predecesor

(excepto el primer elemento) y un único sucesor (excepto el último

elemento).

Aplicaciones

Page 7: Estructurade datos

MEMORIA ESTÁTICA Y DINÁMICA

La memoria (también llamada almacenamiento) se refiere a uno de los

componentes fundamentales que forman parte de una computadora, son

dispositivos que retienen datos informáticos durante algún intervalo de tiempo.

las memorias de computadora proporcionan unas de las principales funciones de

la computación moderna, la retención o almacenamiento de información.

¿Qué es memoria?

Page 8: Estructurade datos

En informática una variable estática es una variable cuyo valor no varía durante

la vida del proceso en ejecución. normalmente una variable estática tiene un

ámbito más amplio que otras variables.

los valores de variables estáticas se pueden establecer una vez (durante el

tiempo de ejecución) o se pueden cambiar en múltiples ocasiones durante la

ejecución del programa.

¿Qué es estática?

Es la memoria que se reserva en el momento de la compilación antes de

comenzar a ejecutar el programa. los objetos son creados al iniciar el programa y

destruidos al finalizar el mismo. mantienen la misma localización en memoria

durante todo el transcurso del programa hasta que son destruidos.

Los objetos administrados de este modo son: variables globales, variables

estáticas de funciones, miembros static de clases y literales de cualquier tipo.

Memoria estática

Page 9: Estructurade datos

• Error en tiempo de ejecución de índice fuera de rango

• Se debe conocer con anticipación el tamaño de la estructura V [3 ], M[2,2], C[5,3,2]

• Se guarda en memoria adyacente (vectores, matrices, cubos, registros, archivos)

Ventajas

• Lógica simple

• Optimo para resolver problemas P y M

Desventajas

• No se puede modificar el tamaño de las estructuras en T.D.E

• No es óptima con grandes cantidades de datos

• Desperdicio de memoria cando no se utiliza la totalidad del tamaño por ejemplo

V[100]

Consideraciones memoria estática

Page 10: Estructurade datos

¿QUÉ ES DINÁMICA?

En informática, la programación dinámica es un método para reducir el tiempo de

ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y

subestructuras óptimas.

El matemático Richard Bellman inventó la programación dinámica en 1953 que se utiliza

para optimizar problemas complejos que pueden ser discretizados y secuencializados.

MEMORIA DINÁMICA

Se refiere a aquella memoria que no puede ser definida ya que no se conoce o no se

tiene idea del número de la variable a considerarse, la solución a este problema es la

memoria dinámica que permite solicitar memoria en tiempo de ejecución, por lo que

cuanta más memoria se necesite, más se solicita al sistema operativo. El sistema

operativo maneja la memoria gracias al uso de punteros, por la misma naturaleza del

proceso nos impide conocer el tamaño de la memoria necesaria en el momento de

compilar.

Page 11: Estructurade datos

• manejo transparente del tamaño de la estructura

• se guarda donde se encuentra el espacio

• no se guarda necesariamente en memoria adyacente

Ventajas

• El tamaño de la estructura no infiere en la lógica del programa

Desventajas

• Las estructuras de datos son una forma avanzada de manejar datos en

tiempo de ejecución.

Consideraciones memoria dinámica

Page 12: Estructurade datos

En esta primera unidad tuvimos la oportunidad de aprender sobre los principios

básicos la estructura de datos, ya sean los tipos de datos abstractos que existen

y como emplearlos de manera correcta a la hora de programar haciendo uso de

la modularidad para facilitar el manejo del los problemas haciendo mas fácil la

lectura y comprensión del código así también como para reducir el uso de líneas

de código innecesario o poco optimizado.

Conclusión general