Sei sulla pagina 1di 32

Introduccin a las estructuras

de datos

Prof. Luis Fernando Nio V.


Abstraccin de datos
Abstraccin: representacin de las
caractersticas y comportamiento de un
objeto del mundo real desde una perspectiva
particular.
Conceptos bsicos
La abstraccin como proceso: consiste en
separar las propiedades esenciales de un
objeto, sistema, fenmeno o problema y
omitir otra informacin que no se considera
esencial desde una perspectiva particular.

La abstraccin como producto: es una


descripcin o especificacin 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.
Conceptos bsicos
Tipo de dato abstracto
Tipo definido en trminos de tems de datos y
operadores asociados, no de su implementacin
Una herramienta til para especificar las propiedades
lgicas de los tipos de datos abstractos (TDA), el cual es
fundamentalmente una coleccin de valores y un
conjunto de operaciones sobre esos valores.
La coleccin de valores y las operaciones sobre esos
valores forman una construccin matemtica que
pueden implementarse utilizando una estructura
de dato particular ya sea de hardware o de
software.
TDA

Tomado de: Data Structures: Abstract Data Type (ADT). Reel Learning.
URL: https://www.youtube.com/watch?v=HcxqzYsiJ3k
TDA

Datos?

Operaciones?
TDA

Abstraccin de datos

Abstraccin de
procedimientos
Abstraccin de procedimientos

Abstraccin por parametrizacin:


argumentos

Abstraccin por especificacin:


qu hace?
pre-condicin/post-condicin
Abstraccin de datos

Permite extender los tipos pre-defedinidos


en los lenguajes de programacin

Permite incluir nuevos tipos de datos con


sus operaciones (estructuras de datos)
Dato

Informacin en bruto, sin ningn significado

Ejemplo:
El estudiante Pedro Perez de 22 aos tiene un promedio de 3.5
Representacin de datos
Nombre: Pedro Perez -> Conjunto de Caracteres
Edad: 22 -> entero
Promedio: 3.5 -> real
Informacin
Los datos al ser procesados e interpretados
se convierten en informacin til

Empleado Horas Datos de salida (se muestran


Pedro, Perez 160 en el monitor)
Juan, Rodrguez 155 Pedro, Perez $320
Pablo, Mendoza 120 Juan, Rodriguez $310
Pablo, Mendoza $240
Salario por hora = $2

Datos de entrada(ingresados por


teclado) Procesamiento:
Calcular salario anual
Cmo representar los
datos?
Los seres humanos:
Usamos lenguaje natural o smbolos
Ejemplo:
Para representar nmeros, usamos el sistema decimal
Para representar palabras, usamos el abecedario
La computadora:
Usa 1s y 0s
El dato ms pequeo en el computador es
Un 1 o un 0: bit
El conjunto de 8 bits: 1 byte
Tipos de datos
Los datos se clasifican por tipos
Corresponden a los diferentes dominios.
Ejemplos:
Edad, Ao de Nacimiento, Nmero de multas
Estn en el dominio numrico
Nombre, Direccin, Nmero de identificacin,
Estn en el dominio de la informacin tipo texto

Y las operaciones permitidas para dicho dominio

Un conjunto de valores y operaciones


definidas para esos valores
Importante
Un tipo de dato es el conjunto de valores
Al que puede pertenecer una constante
Que puede asumir una variable o expresin
Que puede ser generado por una funcin
De una constante, variable o expresin
Se puede deducir su tipo de dato
Ya sea de su forma o de su declaracin
Sin necesidad de que se ejecute ningn proceso
Las operaciones entre datos
Necesitan participantes (argumentos) de determinado tipo
Producen resultados del mismo tipo o diferente tipo
Tipos de datos bsicos
Se pueden distinguir fcilmente, usualmente, en la vida cotidiana:
El Sr. Prez de 63 aos tiene nmero de identificacin 0908815533, y paga
$120 en impuestos
Son tipos de datos simples
Que permiten representar informacin numrica 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


Lgicos Verdadero o Falso(1 o 0) And, Or, Not
Caracteres Letras, nmeros, especiales, juntos Sumar carcter y entero, restar carcter
forman una cadena de entero, multiplicar por entero
Representacin en computador
Solo vienen integrados los tipos de datos bsicos
En el computador
Cada byte es un casillero y tiene una direccin en
memoria 1000
Los datos (nmeros y letras) se almacenan en 1001
estos casilleros 1002
Cuantos casilleros ocupa un dato? 1003

Depende de su tipo y del hardware de la computadora


Un entero puede ocupar casillas de 4 bytes
Un doble siempre ocupar ms, por su mayor precisin
Un caracter, usualmente, ocupar casillas de 1
byte
Al declarar una variable se

Declaracin de variables
le asigna espacio en
memoria y una direccin
para dicho espacio

Una declaracin de variables en C/Java incluye


Tipo de dato y
Nombre de variable (identificador) 100
4 bytes,
101
Ejemplo: int a; 102
dir: 100

int a, b; 103
1 byte,
float c; char c; 104
dir: 104

Para que se declaran las 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
Direcciones de memoria
Las variables
Tienen direcciones de memoria
Si se desea conocer dicha direccin
En lenguaje C/Java
Se usa el operador & para obtener su direccin
1000
&a es
Ejemplo: 1001 1000
int a;
a = 3; 1002
printf(Valor:%d Dir: %d, a, &a);
1003
Un puntero (o apuntador)
Es una variable que puede almacenar una direccin de
memoria
Declaracin de apuntadores
Un tipo de dato int *p;
Un apuntador solo podr almacenar direcciones
de memoria de variables del tipo especificado
Se pueden definir apuntadores de cualquier tipo:
1000 3 x
float *pf; 1001
char *pc; 1002
1003
1000 pt
Un identificador que siempre va antecedido del 1004
1005
operador * int *pt, x; pt almacena la
x = 3; direccin de x, se dice
que pt apunta a x
pt = &x;
Consultar contenido
Si un apuntador apunta a una variable
A travs del apuntador se puede llegar a conocer todo sobre la variable
Ejemplo: char c, *pc1, *pc2;
pc1 = &c;

Si quiero conocer la direccin, 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); Es equivalente a :
Ejercicio *pc1 = N c = N

printf(%c,c); Imprime N pues c ya


cambio
Ejemplo
int x,y; 1000 22
-42
17 x
int *p1,*p2; 1004 163 y
22
x = -42; 1004
1008 1000
1004
0
1000 p1
y = 163;
1012 01004
1004 p2
p1 = &x;
p2 = &y;
Es equivalente a escribir
*p1 = 17; x = y;

Esto indica que p1 ahora apunta


*p2 = x+5; a la misma variable que p2
*p1 = *p2;
p1 = NULL; Esto es equivalente a poner en cero el
puntero, y decir que no apunta a ninguna
p1 = p2; p2 = NULL; variable
Conceptos bsicos
Definicin: "Si se posee un tipo de dato
llamado T que se define como una clase de
valores y una coleccin 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 implementacin,


debe de cumplir con las especificaciones
algebraicas de sus operaciones (SINTAXIS Y
SEMNTICA).
Conceptos bsicos
La correcta especificacin (segn Gutag) de
un TDA debe ser:

A.-Especificacin Sintctica:
Aqu se tratan las funciones u operaciones
que actan sobre las instancias de T,
definindose los nombres, dominios y rangos
de dichas funciones.
Tipos de operaciones
1. Operacin Constructor: esta operacin
produce una nueva instancia para el tipo de dato
abstracto; permite generar dinmicamente instancias
de nuevos objetos y asignarles valores por defecto a
las propiedades (atributos) del TDA. Reserva
memoria principal.

2. Operacin Destructor: elimina aquellas


instancias del tipo de dato T que ya no se requieren.
Libera memoria principal.
Tipos de operaciones
3. Operacin de Acceso: permite obtener
elementos que slo son propiedades del tipo
de dato del sistema.

4. Operacin de Transformacin:
producen nuevos elementos del tipo de dato
abstracto, partiendo del elemento ya
existente y posiblemente de otros
argumentos.
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
especificacin se realiza la siguiente tabla:
Nombre de la operacin
Dominio de los argumentos
Rango de los resultados
Tipo de operacin
Especificacin del TDA
B.- Especificacin Semntica:
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 vlidas 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.
Propiedades de un TDA
PPropiedades de los TDA
Encapsulacin: un TDA encapsula ciertos
tipos de datos y operaciones con el objetivo
de localizar en un punto determinado de su
programa la especificacin del TDA.
Generalizacin: 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.
Estructuras de datos

Estructura de Datos - Conceptos Bsicos. Julio Tentor


URL: https://www.youtube.com/watch?v=53mu9sqZSAQk
Ejemplo (1)

Sistema de reservacin de sillas de un teatro:

datos?
Operaciones?
Ejemplo

Sistema de reservacin de sillas de un teatro:

datos?
Operaciones?
Ejemplo (2)
Sistema de reservacin de sillas de un teatro:

Potrebbero piacerti anche