estructura de datos. concepto es un modelo matemático o lógico organizado de los datos es un...

24
ESTRUCTURA DE ESTRUCTURA DE DATOS DATOS

Upload: gertrudis-casillas

Post on 16-Apr-2015

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

ESTRUCTURA DE ESTRUCTURA DE DATOSDATOS

Page 2: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

ConceptoConcepto

Es un modelo matemático o lógico Es un modelo matemático o lógico organizado de los datosorganizado de los datos

Agrupar ciertos tipos de datos en Agrupar ciertos tipos de datos en categorías o en estructuras.categorías o en estructuras.

Hay estructura de datos estáticas y Hay estructura de datos estáticas y estructura de datos dinámicas.estructura de datos dinámicas.

Page 3: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Dato e InformaciónDato e Información

Es la mínima representación de la Es la mínima representación de la informacióninformación

Hacen referencia a un conjunto de Hacen referencia a un conjunto de valores pudiendo ser simples o valores pudiendo ser simples o múltiplesmúltiples

Edad es un dato simpleEdad es un dato simple Nombre es un dato múltiple Nombre es un dato múltiple Es el resultado de procesar un Es el resultado de procesar un

conjunto de datosconjunto de datos

Page 4: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Clasificación de DatosClasificación de DatosEnterosEnteros

NuméricosNuméricos RealesRealesSimplesSimples AlfanuméricosAlfanuméricos De De

caráctercarácter Lógicos Lógicos De De

cadenacadenaEstáticosEstáticos

VectoresVectoresEstructuradosEstructurados RegistrosRegistros

DatosDatos ConjuntosConjuntosArchivosArchivos

listalistaDinámicosDinámicos colacola

PilaPilaÁrbolÁrbolGrafoGrafo

Page 5: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Estructuras de datos estáticasEstructuras de datos estáticas

Internamente utilizan la memoria Internamente utilizan la memoria estática de la computadora para su estática de la computadora para su almacenamiento temporal almacenamiento temporal

Tienen una capacidad limitada de Tienen una capacidad limitada de elementos al definirlos.elementos al definirlos.

Page 6: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Estructuras de datos dinámicasEstructuras de datos dinámicas

Internamente utilizan la memoria Internamente utilizan la memoria dinámica de la computadora para su dinámica de la computadora para su almacenamiento, almacenamiento,

Direcciones de memoria junto y el Direcciones de memoria junto y el manejo de punteros en la parte de manejo de punteros en la parte de implementación del programa. implementación del programa.

no tiene un tamaño o capacidad no tiene un tamaño o capacidad limitadalimitada

Page 7: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Jerarquía de los datosJerarquía de los datos

Es la prioridad o el orden en cuando Es la prioridad o el orden en cuando a su conformación y manejo de a su conformación y manejo de estos.estos.

Jerarquía significa cuales datos son Jerarquía significa cuales datos son primero y cuales son después. primero y cuales son después.

Page 8: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Jerarquia (orden)

Nombre Concepto

primero Dato Minima cantidad de informacion

segundo Campo Conjunto de datos

tercero Registro Conjunto de campos

cuarto Archivo Conjunto de registros

quinto Base de Datos Conjunto de archivos

sexto Biblioteca Conjunto de Bases de Datos

JERARQUIA DE LOS DATOS

Page 9: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

DATODATO

Información en bruto, sin ningún significadoInformación en bruto, sin ningún significado

Dado un enunciado, evento o acción, los datosDado un enunciado, evento o acción, los datos– Permiten representar sus actores o participantesPermiten representar sus actores o participantes

– Analizándolos, se podrá obtener resultados deseadosAnalizándolos, se podrá obtener resultados deseados

Analicemos el siguiente hecho:Analicemos el siguiente hecho:– El estudiante de nombre Pedro Vélez de 22 años, tiene El estudiante de nombre Pedro Vélez de 22 años, tiene

un promedio de 7.5un promedio de 7.5

Podemos tomar los siguientes datosPodemos tomar los siguientes datos– Nombre:Nombre: Pedro Vélez Pedro Vélez -> Conjunto de Caracteres-> Conjunto de Caracteres

– Edad:Edad: 22 22 -> entero-> entero

– Promedio:Promedio: 7.5 7.5 -> real-> real

Page 10: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

INFORMACIÓNINFORMACIÓN Es el resultado deseado luego de procesar Es el resultado deseado luego de procesar

los datoslos datos Los datos, al ser procesados, se convierten Los datos, al ser procesados, se convierten

en en información útilinformación útil o resultados. o resultados.

Procesamiento:Calcular salarios

Juan, Perez $320

Pedro, Rodriguez $310

Luis, Pozo $240

Datos de salida(se muestran en el monitor)

Datos de entrada(ingresados x teclado)

Juan, Perez

Pedro, Rodriguez

Luis, Pozo

160

155

120

Empleado Horas

Valor por hora = $2

Page 11: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

¿Cómo representar los datos?¿Cómo representar los datos? Los seres humanos:Los seres humanos:

– Usamos lenguaje natural o símbolosUsamos lenguaje natural o símbolos– Ejemplo:Ejemplo:

Para representar números, usamos el sistema Para representar números, usamos el sistema decimaldecimal

Para representar palabras, usamos el abecedarioPara representar palabras, usamos el abecedario

La computadora:La computadora:– Usa conjuntos de 1s y 0sUsa conjuntos de 1s y 0s– El dato mas pequeño en el computador es El dato mas pequeño en el computador es

Un 1 o un 0 -> bitUn 1 o un 0 -> bit

– El conjunto de 8 bits -> 1 byteEl conjunto de 8 bits -> 1 byte

Page 12: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

TIPOS DE DATOSTIPOS DE DATOS Los datos se clasifican en TIPOSLos datos se clasifican en TIPOS Son los diferentes dominios existentes. Son los diferentes dominios existentes.

Ejemplo:Ejemplo:– Edad, Año de Nacimiento, Numero de multasEdad, Año de Nacimiento, Numero de multas

Tienen dominio Tienen dominio numériconumérico

– Nombre, Dirección, Num. Cedula, Nombre, Dirección, Num. Cedula, Caen en el dominio de la Caen en el dominio de la información tipo textoinformación tipo texto

Y las operaciones permitidas para dicho Y las operaciones permitidas para dicho dominiodominio

Un conjunto de valores y operaciones definidas solo para esos valores

Page 13: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

TIPOS DE DATOS BASICOSTIPOS DE DATOS BASICOS Los podemos distinguir fácilmente, están en el diario vivir:

El Sr. Vera de 63 años tiene cedula No. 0908815533, y paga $120 de impuestos

Son tipos de datos simples Que permiten representar información numérica, caracteres, etc.

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 + entero restar, multiplicar por entero

Page 14: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

DIRECCIONES DE MEMORIADIRECCIONES DE MEMORIA

1000

1001

1002

1003

&a es 1000

Las variables Tienen direcciones de memoria

Si deseamos conocer dicha dirección En lenguaje C Se usa el operador & de dirección

Ejemplo:int a;a = 3;printf(“Valor:%d Dir: %d”, a, &a);

Un puntero Es una variable que puede almacenar dirección de memoria

Page 15: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Categoria de Datos.-Categoria de Datos.-

Categoría de los datos del usuarioCategoría de los datos del usuario Categoría de los datos del Categoría de los datos del

ordenadorordenador Categoría de los datos del portadorCategoría de los datos del portador Categoría de los datos de la Categoría de los datos de la

memoriamemoria

Page 16: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Categoría de los datos del Categoría de los datos del usuariousuario

Destinada al usuario de la Destinada al usuario de la computadora (programador), son los computadora (programador), son los datos y tipos de datos que utiliza el datos y tipos de datos que utiliza el programador para construir programador para construir aplicaciones.aplicaciones.

Ejemplo: campos, registros, archivos, Ejemplo: campos, registros, archivos, biblioteca, pilas, colas, vectores, etc.biblioteca, pilas, colas, vectores, etc.

Page 17: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Categoría de los datos del Categoría de los datos del ordenadorordenador

Utiliza el propio ordenador Utiliza el propio ordenador internamente cuando el usuario internamente cuando el usuario utiliza cierto lenguaje de utiliza cierto lenguaje de programacion o de simulacion.programacion o de simulacion.

Ejemplo: bit, byte, word, bloqueEjemplo: bit, byte, word, bloque

Page 18: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Categoría de los datos del Categoría de los datos del portadorportador

Destinados al portador, es decir Destinados al portador, es decir cuando se quiere transportar o llevar cuando se quiere transportar o llevar datos de un lugar a otro, existen datos de un lugar a otro, existen otros nombres para estos datos que otros nombres para estos datos que indican operaciones de entrada y indican operaciones de entrada y salida.salida.

Ejemplo: Volumen, extension, areaEjemplo: Volumen, extension, area

Page 19: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Categoría de los datos de la Categoría de los datos de la memoriamemoria

Utilizan en la memoria del Utilizan en la memoria del computador. La informacion se computador. La informacion se almacena en una unidad de memoria almacena en una unidad de memoria denominada celda, el cual tiene un denominada celda, el cual tiene un tamaño determinado, al conjunto de tamaño determinado, al conjunto de celdas se denomina lista. Ejemplo: celdas se denomina lista. Ejemplo: celda, lista.celda, lista.

Page 20: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

TIPOS ABSTRATOS DE DATOS TIPOS ABSTRATOS DE DATOS (TAD)(TAD)

La abstracción es un mecanismo definido La abstracción es un mecanismo definido como la capacidad de manejar objetos y como la capacidad de manejar objetos y situaciones concentrándonos sólo en la situaciones concentrándonos sólo en la esencia de los mismos.esencia de los mismos.

Los T.A.D. constituyen una forma de Los T.A.D. constituyen una forma de generalizar y encapsular los aspectos más generalizar y encapsular los aspectos más importantes de la información importantes de la información

Se reutiliza en otros programas. Se reutiliza en otros programas. La definición de TAD puede dividirse en 2 La definición de TAD puede dividirse en 2

niveles:niveles:

Page 21: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Niveles de un TADNiveles de un TAD

1er nivel superficial donde se define el 1er nivel superficial donde se define el TAD y las operaciones sobre el con poco TAD y las operaciones sobre el con poco detalle.detalle.

2o nivel donde se profundiza en la 2o nivel donde se profundiza en la definición del TAD y en la implementación definición del TAD y en la implementación de sus operaciones.de sus operaciones.

Ejemplo: Un TAD es una fecha ( int[3]) y Ejemplo: Un TAD es una fecha ( int[3]) y sus funciones de manipulación (Crear, sus funciones de manipulación (Crear, Distancia, Dia...). Distancia, Dia...).

Page 22: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

Tipos de TADTipos de TAD

T.A.D. Lineales: Son aquellas estructuras T.A.D. Lineales: Son aquellas estructuras abstractas de datos en que cada elemento abstractas de datos en que cada elemento tiene como mucho dos elementos tiene como mucho dos elementos adyacentes (posterior y/o anterior), como adyacentes (posterior y/o anterior), como las pilas, colas y listas.las pilas, colas y listas.

T.A.D. no Lineales:T.A.D. no Lineales: Son aquellos cuyos elementos pueden Son aquellos cuyos elementos pueden

tener más de 2 adyacentes, a los que tener más de 2 adyacentes, a los que pueden acceder directamente, como los pueden acceder directamente, como los árboles o grafos.árboles o grafos.

Page 23: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

ARREGLOSARREGLOS Conjunto de elementosConjunto de elementos

– Finito, Ordenado y Homogéneo, Finito, Ordenado y Homogéneo, Todos sus elementos son del mismo tipoTodos sus elementos son del mismo tipo

Un arreglo estático se declaraUn arreglo estático se declaraint A[100];int A[100];

– El tipo de los elementos, el identificador y El tipo de los elementos, el identificador y – El numero de elementos (dimensión)El numero de elementos (dimensión)

Cada elemento del arreglo tiene un índiceCada elemento del arreglo tiene un índice– En C, siempre el índice mas pequeño es el 0: limite En C, siempre el índice mas pequeño es el 0: limite

inferiorinferior– El limite superior, es 1 menos que la dimensiónEl limite superior, es 1 menos que la dimensión

Si el arreglo tiene 100 elementos, el índice mas alto es Si el arreglo tiene 100 elementos, el índice mas alto es el 99el 99

0 1 2 3 4 ...

A

99

Page 24: ESTRUCTURA DE DATOS. Concepto Es un modelo matemático o lógico organizado de los datos Es un modelo matemático o lógico organizado de los datos Agrupar

REPRESENTACION INTERNAREPRESENTACION INTERNA

1000

1008

1016

1024

1032

Lista[0]

Lista[1]

Lista[2]

Lista[3]

Lista[4]

&Lista[i] -> &Lista[0] + (i*sizeof(Lista[0]))

Cuantos bytes ocupa un tipo de dato Cuantos bytes ocupa un tipo de dato o variable?o variable?– En C lo indica el operador En C lo indica el operador sizeofsizeof– Ejemplo:Ejemplo:

int a;int a;

printf(“%d %d”, sizeof(int), sizeof(a));printf(“%d %d”, sizeof(int), sizeof(a));

El computador internamenteEl computador internamente– No almacena la dirección de todos los No almacena la dirección de todos los

elementos del arregloelementos del arreglo– Solo almacena la dirección del primer Solo almacena la dirección del primer

elementoelemento– El resto lo calcula así:El resto lo calcula así: