estructura de datos

36
Año I Numero I

Upload: ysmar

Post on 22-Jul-2016

219 views

Category:

Documents


0 download

DESCRIPTION

Conoce las diferentes estructuras de datos utilizadas en la programacion

TRANSCRIPT

Page 1: Estructura de datos

Año I – Numero I

Page 2: Estructura de datos

Un dato es unarepresentación simbólica (numérica,alfabética, algorítmica, espacial, etc.) deun atributo o variable cuantitativa ocualitativa. Los datos describen hechosempíricos, sucesos y entidades.

En programación, un dato es la expresióngeneral que describe las característicasde las entidades sobre las cuales operaun algoritmo.

En Estructura de datos, es la partemínima de la información.

Autor: Antonio Torres

Page 3: Estructura de datos

Los tipos de datos hacen referencia altipo de información que se trabaja,donde la unidad mínima dealmacenamiento es el dato, también sepuede considerar como el rango devalores que puede tomar una variabledurante la ejecución del programa.

Page 4: Estructura de datos

El tipo de dato carácter es un dígitoindividual el cual se puede representarcomo numéricos (0 al 9), letras (a-z) ysímbolos (!"$&/\).Nota: En el lenguaje java lacodificación Unicode permite trabajar contodos los caracteres de distintos idiomas.

Tipo de dato Rango Tamañode bits

char 0 a 6553516 bits

Page 5: Estructura de datos

Este tipo de dato puede ser real o entero,dependiendo del tipo de dato que se vayaa utilizar.

Enteros: son los valores que no tienenpunto decimal, pueden ser positivos onegativos y el cero

Tipo de dato: byte tamaño = 8bits

Tipo de dato: short tamaño = 16bits

Tipo de dato: int tamaño = 32bits

Tipo de dato: long tamaño = 64bits

Page 6: Estructura de datos

Reales: estos caracteresalmacenan números muygrandes que poseen parteentera y parte decimal.

Tipo de dato: floattamaño = 32 bits

Tipo de dato: doubletamaño = 64 bits

Page 7: Estructura de datos

Este tipo de dato se emplea para valoreslógicos, los podemos definir como datoscomparativos dicha comparación devuelveresultados lógicos (Verdadero o Falso).

Tipo de dato: boolean tamaño = 8bits

Page 8: Estructura de datos

Un valor simple (o tipo de dato simple) esun valor que ActionScript almacena en elnivel más bajo de abstracción, lo quesignifica que las operaciones con tipos dedatos simples son generalmente másrápidas y eficientes que las operacionesrealizadas con tipos de datos complejos.

Los siguientes tipos de datos definen unconjunto de uno o varios valores simples:Boolean (booleano), null (nulo), Number(número), String (cadena) y undefined (nodefinido).

Page 9: Estructura de datos

Un valor complejo (o tipo de datoscomplejo) es un valor que no es simple yque hace referencia a los valores simples.Estos se denominan con frecuencia tiposde datos de referencia. Los valorescomplejos pertenecen al tipo de datosObject (objeto) o a un tipo de datosbasado en el tipo de datos Object. Entrelos tipos de datos que definen conjuntosde valores complejos se encuentran Array(matriz), Date (fecha), Error, Function(función) y XML. Para más informaciónsobre estos tipos de datos complejos,consulte sus correspondientes entradasenReferencia del lenguaje ActionScript2.0.

Page 10: Estructura de datos
Page 11: Estructura de datos
Page 12: Estructura de datos
Page 13: Estructura de datos
Page 14: Estructura de datos
Page 15: Estructura de datos
Page 16: Estructura de datos

Una pila (stack en ingles) es

una lista ordenada o

estructura de datos en la que

el modo de acceso a sus

elementos es de tipo LIFO

(Last In First Out, Ultimo en

entrar primero en salir)

Para el manejo de los datos

cuenta con dos operaciones

básicas:

• Apilar (Push): Coloca un

objeto en la pila.

• Desapilar (Pop): Retira el

ultimo elemento apilado.

Autor: Oscar Sosa

Page 17: Estructura de datos

OPERACIONES:

• Crear (Constructor): Se crea la pila vacía.

• Tamaño (Size): Regresa el numero de

elementos de la pila.

• Apilar (Push): Se añade un elemento a la pila.

• Desapilar (Pop): Se elimina un elemento

frontal de la pila.

• Cima (Top o Peek): Devuelve el elemento que

esta en la cima de la pila.

• Vacía (Empty): Devuelve cierto si la pila esta

sin elementos o falso en caso de que contenga

uno.

Page 18: Estructura de datos

Una cola es un grupo

ordenado de elementos

homogéneos en el que:

• Los nuevos elementos se

añaden por un extremo (el

final).

• Y se quitan por el otroextremo (el frente).

RECORRIDO:

FIFO (del inglés First In

First Out), debido a que

el primer elemento en

entrar será también el

primero en salir.

Page 19: Estructura de datos

La diferencia con las pilas es enel modo de entrada / salida dedatos; en las colas se realizanlas inserciones al final de la

lista, no al principio.

Por eso, se usan paraalmacenar datos quenecesitan serprocesados según elorden de llegada.

PILAS

COLAS

LIFO

FIFO

Page 20: Estructura de datos

COLA SIMPLE:

Estructura lineal dondelos elementos salen enel mismo orden en quellegan.

COLA CIRCULAR:

En las que el últimoelemento y el primeroestán unidos. Seconsidera quedespués del últimoelemento se accedede nuevo al primero.De esta forma sereutilizan lasposiciones extraídas.

Page 21: Estructura de datos

COLAS CON PRIORIDAD:

Las colas con prioridadse implementan mediantelistas o arrays ordenados.No nos interesa en estecaso que salgan en elorden de entrada sinocon una prioridad que leasignemos. Puede darseel caso que existan varioselementos con la mismaprioridad, en este casosaldrá primero aquel queprimero llego (FIFO).

COLA DOBLE (BICOLA) :

Estructura lineal en la quelos elementos se puedenañadir o quitar porcualquier extremo de lacola (Cola bidireccional). .Hay variantes:

1. Bicolas de entradarestringida: Son aquellasdonde la inserción sólose hace por el final,aunque podemos eliminaral inicio ó al final.

2. Bicolas de salidarestringida: Son aquellasdonde sólo se elimina porel final, aunque se puedeinsertar al inicio y al final.

Page 22: Estructura de datos

Las Colas también seutilizan en muchasmaneras en los sistemasoperativos para planificarel uso de los distintosrecursos de lacomputadora. Uno deestos recursos es lapropia CPU (UnidadCentral deProcesamiento).

Si está trabajando enun sistemamultiusuario, cuandole dice a lacomputadora queejecute un programaconcreto, el sistemaoperativo añade supetición a su "cola detrabajo".

Cuando su petición llegaal frente de la cola, elprograma solicitado pasaa ejecutarse. Igualmente,las colas se utilizan paraasignar tiempo a losdistintos usuarios de losdispositivos deentrada/salida (E/S),impresoras, discos,cintas y demás.

El sistemaoperativo mantienecolas parapeticiones deimprimir, leer oescribir en cadauno de estosdispositivos.

Page 23: Estructura de datos

Crear:

se crea la cola vacía.

Encolar (añadir, entrar, insertar):

se añade un elemento a la cola. Se añade al

final de esta.

Desencolar (sacar, salir, eliminar):

se elimina el elemento frontal de la cola, es

decir, el primer elemento que entró.

Frente (consultar, front):

se devuelve el elemento frontal de la cola,

es decir, el primer elemento que entró.

Page 24: Estructura de datos

ARBOLESAutora: Ysmar Trujillo

Un árbol (tree) es un

conjunto finito de nodos.

Es una estructura

jerárquica aplicable sobre

una colección de

elementos u objetos

llamados nodos; uno de

los cuales es conocido

como raíz.

Conceptos:

• Nodo: Es un registro que

contiene un dato de interés y

al menos un puntero para

referenciar (apuntar) a otro

nodo.

• Finito: Que tiene fin o límite

en el espacio o en el tiempo,

y por tanto puede ser

numerado o medido.

Page 25: Estructura de datos

Los árboles representan

las estructuras no lineales

y dinámicas, puesto que a

cada elemento del árbol

pueden seguirle varios

elementos. Dinámicas,

puesto que la estructura

árbol puede cambiar

durante la ejecución del

programa.

EJEMPLO DE ARBOL

1. A raíz del árbol.

2. B es el hijo de A. C es hijo

de A.

3. B es padre de D. D es padre

de I.

4. B y C son hermanos. D, E,

F son hermanos.

5. I, E, J, K, G, L son hojas.

6. B, D, F, C y H son nodos

interiores.

7. Nivel del nodo A es 1. Nivel

del nodo E es 3.

8. La altura del árbol es 4.

• El grado de nodo A es 2.

• El grado de nodo B es 3.

• El grado de nodo C es 2.

• El grado de nodo D es 1.

• El grado de nodo E es 0.

• Grado del árbol es 3.

Page 26: Estructura de datos

PROPIEDADES

• Grado: es el número de descendientes directos

de un determinado nodo. Grado del árbol es el

máximo grado de todos los nodos del árbol.

• Nivel: es el número de arcos que deben ser

recorridos para llegar a un determinado nodo.

Por definición la raíz tiene nivel 1.

• Altura: del árbol es el máximo número de

niveles de todos los nodos del árbol.

• Rama: es un camino desde el nodo raíz a una

hoja.

Page 27: Estructura de datos

CARACTERISTICAS

• Todo árbol que no es vacío, tiene un único nodo raíz.

• Un nodo X es descendiente directo de un nodo Y, si

el nodo X apunta al nodo Y. X es hijo de Y.

• Un nodo X es antecesor directo de un nodo Y, si el

nodo X apunta al nodo Y. X es el padre de Y.

• Se dice que todos los nodos que son descendientes

directos (hijos) de un mismo nodo (padre), son

hermanos.

• Todo nodo que no tiene ramificaciones (hijos) se

conoce con el nombre de terminal u hoja.

• Todo nodo que no es raíz, ni terminal u hoja se

conoce con el nombre de interior.

Page 28: Estructura de datos

ARBOLES BINARIOS

Un árbol binario es un

árbol en el que cada nodo

no puede tener mas de

dos hijos o descendientes.

Es un árbol de grado 2.

• En un árbol binario los

hijos se conocen como

hijo izquierdo e hijo

derecho.

• Un nodo que no tiene hijos

se denomina hoja.

• El nodo raíz se dice que

está en el nivel 0 en el

árbol.

• Altura del árbol se define

como el nivel más alto del

árbol.

Page 29: Estructura de datos

Un árbol binario

está balanceado

(equilibrado) si

cada nodo tiene

exactamente dos

hijos o no tiene

hijos y si cada hoja

está al mismo nivel.

Los subárboles

izquierdo y

derecho de un

árbol binario deben

ser subconjuntos

disjuntos, esto es,

ningún nodo puede

estar en ambos

subárboles.

Page 30: Estructura de datos

LISTAS ENLAZADAS:

Es una colección de elementos

dispuestos uno detrás del otro, en

la que cada elemento se conecta

al siguiente por un enlace o

puntero.

el principal beneficio de las

listas enlazadas respecto a los

vectores es que el orden de los

elementos enlazados puede ser

diferente al orden de

almacenamiento en la memoria o

el disco, permitiendo que el orden

de recorrido de la lista sea

diferente al de almacenamiento.

LISTA SIMPLE:

Sus elementos

solo necesitan un

campo de tipo

puntero.

Los nodos de las

listas, al igual que

las colas y pilas,

esta compuesta por

una parte de

información y el

puntero que

mantiene el enlace

entre un nodo y

otro.

Page 31: Estructura de datos
Page 32: Estructura de datos

Lista Enlazada Lineal:

Constituye una colección lineal de

nodos.

Lista Simplemente Enlazada:

Cada nodo contiene un único apuntador hacia el siguiente

nodo.

Lista Doblemente Enlazada:

Sus nodos contienen dos punteros, uno hacia el

siguiente y otro hacia el nodo anterior.

Page 33: Estructura de datos

Listas Enlazadas Circulares:

El primer y el ultimo nodo están unidos. Esto se

puede hacer tanto para listas enlazadas simples

como para las doblemente enlazadas.

Simples Circulares:

Cada nodo tiene un enlace similar al de las

listas enlazadas simples, excepto que el siguiente nodo del ultimo apunta al

primero.

Doblemente Circulares:

Cada nodo tiene dos enlaces, el enlace anterior del primer nodo apunta al

ultimo y el enlace siguiente del ultimo nodo

apunta al primero.

Page 34: Estructura de datos

Base de datos

Fernando González

Es un conjunto de datos

pertenecientes a un mismo contexto y

almacenados sistemáticamente para

su posterior uso.

Page 35: Estructura de datos

Clasificación de bases de datos

Según la variabilidad de la base

de datos:

* Estáticas.

* Dinámicas.

Según el contenido:

* Bibliográficas.

* Texto completo.

•Información química o biológica.

Modelos de bases de datos

* Jerárquicas.

* Red.

* Transaccionales.

* Relacionadas

* Multidimensional.

* Orientada a objeto.

* Documentales

Page 36: Estructura de datos