La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a las estructuras de datos

Presentaciones similares


Presentación del tema: "Introducción a las estructuras de datos"— Transcripción de la presentación:

1 Introducción a las estructuras de datos

2 Abstracción de datos Abstracción: representación de las características y comportamiento de un objeto del mundo real desde una perspectiva particular.

3 Conceptos básicos La abstracción como proceso: consiste en separar las propiedades esenciales de un objeto, sistema, fenómeno o problema y omitir otra información que no se considera esencias desde una perspectiva particular. La abstracción como producto: es una descripción o especificación de un sistema en el que se enfatizan algunos detalles o propiedades y se suprimen otros. Las propiedades esenciales de un sistema son tratadas como un todo.

4 Conceptos básicos Tipo de dato abstracto
Tipo definido en términos de ítems de datos operadores asociados, no de su implementación Una herramienta útil para especificar las propiedades lógicas de los tipos de datos abstractos (TDA), el cual es fundamentalmente una colección de valores y un conjunto de operaciones sobre esos valores. La colección de valores y las operaciones sobre esos valores forman una construcción matemática que pueden implementarse utilizando una estructura de dato particular ya sea de hardware o de software.

5 TDA Tomado de: Data Structures: Abstract Data Type (ADT). Reel Learning. URL:

6 TDA Datos? Operaciones?

7 Abstracción de procedimientos
TDA Abstracción de datos Abstracción de procedimientos

8 Abstracción de procedimientos
Abstracción por parametrización: argumentos Abstracción por especificación: qué hace? pre-condición/post-condición

9 Abstracción de datos Permite extender los tipos pre-defedinidos en los lenguajes de programación Permite incluir nuevos tipos de datos con sus operaciones (estructuras de datos)

10 Dato Información en bruto, sin ningún significado Ejemplo:
El estudiante Pedro Perez de 22 años tiene un promedio de 3.5 Representación de datos Nombre: Pedro Perez -> Conjunto de Caracteres Edad: > entero Promedio: > real

11 Información Los datos al ser procesados e interpretados se convierten en información útil Pedro, Perez $320 Juan, Rodriguez $310 Pablo, Mendoza $240 Datos de salida (se muestran en el monitor) Datos de entrada(ingresados por teclado) Pedro, Perez Juan, Rodríguez Pablo, Mendoza 160 155 120 Empleado Horas Salario por hora = $2 Procesamiento: Calcular salario anual

12 ¿Cómo representar los datos?
Los seres humanos: Usamos lenguaje natural o símbolos Ejemplo: Para representar números, usamos el sistema decimal Para representar palabras, usamos el abecedario La computadora: Usa 1s y 0s El dato más pequeño en el computador es Un 1 o un 0: bit El conjunto de 8 bits: 1 byte

13 Un conjunto de valores y operaciones definidas para esos valores
Tipos de datos Los datos se clasifican por tipos Corresponden a los diferentes dominios. Ejemplos: Edad, Año de Nacimiento, Numero de multas Están en el dominio numérico Nombre, Dirección, Número de identificación, Están en el dominio de la información tipo texto Y las operaciones permitidas para dicho dominio Un conjunto de valores y operaciones definidas para esos valores

14 Importante Un tipo de dato es el conjunto de valores
Al que puede pertenecer una constante Que puede asumir una variable o expresión Que puede ser generado por una función De una constante, variable o expresión Se puede deducir su tipo de dato Ya sea de su forma o de su declaración Sin necesidad que se ejecute ningún proceso Las operaciones entre datos Necesitan participantes (argumentos) de determinado tipo Producen resultados del mismo tipo o diferente tipo

15 Tipos de datos básicos Se pueden distinguir fácilmente, usualmente, en la vida cotidiana: El Sr. Pérez de 63 años tiene número de identificación , y paga $120 en impuestos Son tipos de datos simples Que permiten representar información numérica y caracteres, entre otros. NOMBRE CONJUNTO DE VALORES OPERACIONES Enteros Negativos y positivos sin decimal Sumar, restar, dividir, multiplicar, residuo Reales Negativos y positivos, con decimal Sumar, restar, dividir, multiplicar Lógicos Verdadero o Falso(1 o 0) And, Or, Not Caracteres Letras, números, especiales, juntos forman una cadena Sumar carácter y entero, restar carácter de entero, multiplicar por entero

16 Representación en computador
Solo vienen integrados los tipos de datos básicos En el computador Cada byte es un “casillero” y tiene una dirección en memoria Los datos (números y letras) se almacenan en estos casilleros ¿Cuantas casilleros ocupa un dato? Depende de su tipo y del hardware de la computadora Un entero puede ocupar casillas de 4 bytes Un doble siempre ocupara mas, por su mayor precisión Un carácter, usualmente, ocupará casillas de 1 byte 1000 1001 1002 1003

17 Declaración de variables
Al declarar una variable se le asigna espacio en memoria y una dirección para dicho espacio Una declaración de variables en C/Java incluye Tipo de dato y Nombre de variable (identificador) Ejemplo: int a, b; float c; ¿Para que se declaran variables? Especifica cuanta memoria debe reservarse y Como se van a interpretar dichos datos f = a + b Es una suma de enteros, que al final se convierte a real 100 101 102 103 104 4 bytes, dir: 100 int a; char c; 1 byte, dir: 104

18 Direcciones de memoria
Las variables Tienen direcciones de memoria Si deseamos conocer dicha dirección En lenguaje C/Java Se usa el operador & para obtener su dirección 1000 1001 1002 1003 &a es 1000 Ejemplo: int a; a = 3; printf(“Valor:%d Dir: %d”, a, &a); Un puntero (o apuntador) Es una variable que puede almacenar una dirección de memoria

19 Declaración de apuntadores
Un tipo de dato Un apuntador solo podrá almacenar direcciones de memoria de variables del tipo especificado Se pueden definir apuntadores de cualquier tipo: float *pf; char *pc; Un identificador que siempre va antecedido del operador * int *p; x 1000 3 1001 1002 1003 pt 1004 1000 1005 int *pt, x; pt almacena la dirección de x, se dice que pt apunta a x x = 3; pt = &x;

20 Imprime ‘N’ pues c ya cambio
Consultar contenido Si un apuntador apunta a una variable A través del apuntador se puede llegar a conocer todo sobre la variable Ejemplo: char c, *pc1, *pc2; pc1 = &c; Si quiero conocer la dirección, uso directamente el apuntador printf(“%d”, pc1); //Imprimo la dir. Almacenada por pc1 pc2 = pc1; //pc2 almacena la misma dir. que pc1 Si quiero conocer el contenido al que apunta un apuntador, uso el operador *, sobre dicho apuntador Es equivalente a : printf(“%c”, c); c = ‘A’ printf(“%c”, *pc1); *pc1 = ‘N’ printf(“%c”,c); Ejercicio Es equivalente a : c = ‘N’ Imprime ‘N’ pues c ya cambio

21 Ejemplo x -42 17 *p1 = 17; *p2 = x+5; y 22 1004 p1 1000 p2 1004
1008 1012 x -42 22 17 int x,y; int *p1,*p2; x = -42; y = 163; p1 = &x; p2 = &y; *p1 = 17; *p2 = x+5; y 163 22 1000 1004 1004 p1 1000 1004 p2 1004 Es equivalente a escribir x = y; Esto indica que p1 ahora apunta a la misma variable que p2 *p1 = *p2; p1 = NULL; p2 = NULL; Esto es equivalente a “encerar” el puntero, y decir que no apunta a ninguna variable p1 = p2;

22 Conceptos básicos Definición: "Si se posee un tipo de dato llamado T que se define como una clase de valores y una colección de operaciones sobre esos valores, y si las propiedades de esas operaciones son especificadas solamente con axiomas, entonces T es un TDA". Un TDA al momento de la implementación, debe de cumplir con las especificaciones algebraicas de sus operaciones (SINTAXIS Y SEMÁNTICA).

23 Conceptos básicos La correcta especificación (según Gutag) de un TDA debe ser:  A.-Especificación Sintáctica: Aquí se tratan las funciones u operaciones que actúan sobre las instancias de T, definiéndose los nombres, dominios y rangos de dichas funciones.

24 Tipos de operaciones 1. Operación Constructor: esta operación produce una nueva instancia para el tipo de dato abstracto; permite generar dinámicamente instancias de nuevos objetos y asignarles valores por defecto a las propiedades (atributos) del TDA. Reserva memoria principal. 2. Operación Destructor: elimina aquellas instancias del tipo de dato T que ya no se requieren. Libera memoria principal.

25 Tipos de operaciones 3. Operación de Acceso: permite obtener elementos que sólo son propiedades del tipo de dato del sistema. 4. Operación de Transformación: producen nuevos elementos del tipo de dato abstracto, partiendo del elemento ya existente y posiblemente de otros argumentos.

26 Tipos de operaciones Se observa el efecto que tiene cada una de las operaciones especificadas sobre el resto de las operaciones del TDA. Para esta especificación se realiza la siguiente tabla: Nombre de la operación Dominio de los argumentos Rango de los resultados Tipo de operación

27 Especificación del TDA
B.- Especificación Semántica: Se compone de un conjunto de axiomas en forma de ecuaciones las cuales indican como operan cada una de las operaciones del tipo de dato abstracto al ser especificadas sobre las operaciones restantes del mismo tipo de dato abstracto. Operaciones válidas sobre la estructura de datos del TDA, y cuales son los resultados que cada una de las operaciones regresa una vez que se haya ejecutado.

28 Propiedades de un TDA PPropiedades de los TDA
Encapsulación: un TDA encapsula ciertos tipos de datos y operaciones con el objetivo de localizar en un punto determinado de su programa la especificación del TDA. Generalización: un programador es libre de definir sus propios tipos de datos y sus propias operaciones con el objetivo de aplicarlos a operandos que no necesariamente tiene que ser de un tipo fundamental.

29 Estructuras de datos Estructura de Datos - Conceptos Básicos. Julio Tentor URL:

30 Ejemplo (1) datos? Operaciones?
Sistema de reservación de sillas de un teatro: datos? Operaciones?

31 Ejemplo datos? Operaciones?
Sistema de reservación de sillas de un teatro: datos? Operaciones?

32 Ejemplo (2) Sistema de reservación de sillas de un teatro:


Descargar ppt "Introducción a las estructuras de datos"

Presentaciones similares


Anuncios Google