Tipos de Datos abstractos - PowerPoint PPT Presentation

About This Presentation
Title:

Tipos de Datos abstractos

Description:

Title: Benem rita Universidad Aut noma de Puebla Facultad de Ciencias de la Computaci n Author: Beatriz Beltr n Mart nez Last modified by: Bety – PowerPoint PPT presentation

Number of Views:82
Avg rating:3.0/5.0
Slides: 36
Provided by: Beatr84
Category:

less

Transcript and Presenter's Notes

Title: Tipos de Datos abstractos


1
Tipos de Datos abstractos
  • Estructuras de Datos
  • MC Beatriz Beltrán Martínez

2
Características
  • Los programas actúan sobre la información.
  • La cual se dispondrá de una manera particular,
    organizada en forma que se faciliten las
    operaciones que conforman el algoritmo.
  • El término Estructura de Datos refiere a dos
    partes de la Organización de la Información.

3
Características
  • Organización Lógica Involucra todo aquello que
    tenga que ver con las partes de cada elemento,
    tipo de los elementos, referencia a alguno o
    algunos elementos, cantidad de los elementos que
    contiene la estructura, relaciones entre los
    elementos, etc.
  • Organización Física Se refiere a todo aquello
    que tenga que ver con la ubicación de la
    información en la memoria y la forma de
    almacenarla de acuerdo a sus dominios.

4
Características
5
Características
Algoritmo
ED
Plantea un concepto más amplio de lo que es el
tipo
6
Ejemplo
A1 A2 A3 A4 A50
Organización Lógica Arreglo de un
índice Inicio 1, Fin 50 Tipo de elementos
Entero   Organización Física Almacenamiento
Secuencial Dirección Inicial dir(A) Tamaño del
elemento 2 bytes Número de elementos 50
7
Considerar
  • La eliminación de un elemento se puede pensar en
    dos formas
  • Por desplazamiento.
  • Por marca.
  • Podemos observar en los anteriores algoritmos que
    el segundo es más rápido, mientras que el primero
    se limita a ocupar el espacio mínimo.
  • Cantidad de memoria que consume la estructura
    contra tiempo de realización de una operación.

8
Tipos de ED y sus dominios
  • A partir de las diferentes formas que existen
    para organizar la información tenemos que en
    cuanto a la Organización Lógica los diversos
    lenguajes de programación proporcionan los
    elementos básicos de información y constructores
    para definir ED.
  • Se tienen tipos básicos, pero también se tienen
    constructores para formar diferentes estructuras.

9
Tipos de ED y sus dominios
  • El REGISTRO proporciona heterogeneidad en este
    producto cartesiano por ejemplo
  • Sea x un REGISTRO con los campos
  • y de tipo ENTERO
  • z de tipo REAL
  • tiene como dominio Dom (x) Z X R, cuyos
    elementos son de la forma (a, b) a?Z y b?R.

10
Tipos de ED y sus dominios
  • En general, tenemos que por ejemplo
  • Sea k un REGISTRO con los campos
  • l de tipo booleano
  • m de tipo x
  • Dom(k) B X Dom(x)
  • Para poder generalizar esto último, se deben
    considerar los elementos de referencia, para ello
    consideremos que en el siguiente ejemplo el
    operador define tales elementos.

11
Tipos de ED y sus dominios
  • Sea p un REGISTRO con los campos
  • xc, yc de tipo Real
  • Sea l-p un REGISTRO con los campos
  • punto de tipo p
  • sp de tipo l-p
  • Dom (l-p) define un dominio recursivo
  • Dom (l-p) Dom (p) x dom (l-p)
  • Los elementos de Dom (l-p) son de la forma
    Dom(l-p) nil U Dom (l-p).

12
Organización física
  • la organización física tiene que ver con el
    lugar y la forma dentro de la memoria donde
    se almacena la información.
  • Tanto el lugar como la forma son
    representados por el espacio el cual puede ser
    fijo o variable.
  • De lo anterior, se tiene que las E.D. se
    clasifican en
  • Estáticas (Espacio Fijo)
  • Dinámicas (Espacio Variante)

13
Memoria Dinámica y Estática
  • Catálogo de algunas estructuras de datos
    conocidas, dinámicas
  • Lista simple ligada
  • Árboles
  • Lista doblemente ligada
  • Estáticas
  • Arreglos
  • Pila
  • Cola

14
Arreglos
  • Organización Lógica
  • Dimensiones.
  • Límite inferior y superior de cada dimensión.
  • Tipo de elementos. 
  • Organización Física
  • Dirección inicial (de un intervalo de memoria)
  • Tamaño de los elementos.
  • Orden de las dimensiones.
  • Desplazamientos .

15
Arreglos
  • Las operaciones con los arreglos son
  • Recuperación de uno de sus elementos.
  • Actualización de un elemento.
  • Ambas operaciones se realizan en función de los
    índices que señalan la ubicación del elemento.

16
Arreglos
  • Sea A un ARREGLO 1..20 con elementos de tipo
    Carácter.
  • Reserva un intervalo de memoria de 20 lugares
    consecutivos a partir de una dirección que
    denotaremos por DirA.

DirA DirA1 DirA2 DirA19
A1 A2 A3 A20
Intervalo de memoria DirA, DirA19
17
Polinomio de Direccionamiento
  • Suponiendo que el direccionamiento sea a nivel de
    bytes.
  • Las operaciones se reducen al cálculo del
    Polinomio de Direccionamiento (Pd).
  • El Pd obtiene la dirección absoluta de un
    elemento del arreglo dados sus índices. 

18
Polinomio de Direccionamiento
  • Por ejemplo
  • Si nos referimos a A7 Pd (A7) DirA 6 Pd
    (Ax) DirA x-1.
  • En general se tiene que si B es un ARREGLO 1..5
    con elementos de tipo T
  • Pd (Bx) DirB (x-1) lt con lt igual a la
    longitud en bytes asignada al tipo T.

19
Polinomio de Direccionamiento
  • Para almacenar los elementos de una matriz en la
    memoria que es lineal, podemos hacerlo por
    columnas o por renglones.
  • Matriz de 3X4
  • 11 12 13 14
  • 21 22 23 24
  • 31 32 33 34

20
Polinomio de Direccionamiento
  • Por columnas
  • Dirección Elemento
  • 100dir 11
  • 101dir1 21 1ª. Columna
  • 102dir2 31
  • 103dir3 12
  • 104dir4 22 2ª. Columna
  • 105dir5 32
  • 106dir6 13
  • 107dir7 23 3ª. Columna
  • 108dir8 33
  • 109dir9 14
  • 110dir10 24 4ª. Columna
  • 111dir11 34

21
Polinomio de Direccionamiento
  • Para la dirección del elemento Ci j y el
    almacenamiento por columnas, el PD es
  • pd(Ci j)dirCn(j-1)(i-1)T
  • Si el almacenamiento se hubiese realizado por
    renglones, entonces el PD quedaría como
  • pd(Ci,j)dirCm(i-1)(j-1)T

22
Polinomio de Direccionamiento
  • El caso más general, que es la declaración
  • Tipo E inf1,sup1 inf2,sup2 , infn,supn
  • donde
  • infi, supi es el límite inferior y límite
    superior de la i-ésima dimensión
    respectivamente. 
  • Sea ri el rango de la i-ésima dimensión definido
    como ri supi-infi1, y T el tamaño en bytes de
    Tipo.

23
Polinomio de Direccionamiento
  • Entonces el PD es
  • pd(Ek1,k2,,kn) dirE r1 r2 r3
    rn-1 (kn-infn) r1 r2 r3 rn-2
    (kn-1-infn-1) r1 (k2-inf2) (k1-inf1)
    T
  • Para referenciar un elemento que se encuentra en
    una estructura utilizaremos la dirección inicial
    del registro y los tamaños en bytes de cada uno
    de los campos del registro de acuerdo a su tipo.

24
Polinomio de Direccionamiento
  • Entonces la fórmula quedaría de la siguiente
    manera
  • Sea
  • estructura R
  • x1 T1
  • x2 T2
  • xn Tn
  • y sea dirR la dirección inicial de R.

25
Multipila
  • En este caso se administran varias pilas.
  • La estructura de pila común hereda
    características del almacenamiento estático y por
    este motivo tendremos
  • límite inferior (LI)
  • límite superior (LS)
  • posición del siguiente lugar libre (T)

26
Multipila
  • Las operaciones más comunes que se consideran
    para su manejo son
  • inserción de un elemento
  • eliminación (extracción) de un elemento
  • verificación de pila vacía o llena.
  • En particular se acostumbra anunciar saturación
    cuando la estructura no admite más elementos.

27
Multipila
  • Considérese
  • LI arreglo 1..n1 de enteros
  • T arreglo 1..n de enteros
  • M arreglo 1..MAX de un Tipo
  • tal que
  • LIk representa el límite inferior de la k-ésima
    pila.
  • Tk representa la posición del siguiente lugar
    libre de la k-ésima pila.
  • LIn1 es el límite superior de la n-ésima pila.

28
Multipila
  • Al inicio todas las pilas están vacías, entonces
    el arreglo de límites inferiores y el de topes
    coinciden, excepto el último elemento del arreglo
    de límites inferiores.
  • Por ejemplo, suponga que se quieren manejar 4
    pilas con capacidad para 4 elementos cada una.
  • n4 y MAX16.
  • Al inicio el contenido de los arreglos LI y T
    quedaría de la siguiente manera

29
Multipila
  • LI11 T11
  • LI25 T25
  • LI39 T39
  • LI413 T413
  • LI517
  • Al realizar la operación de inserción en alguna
    de las pilas, se necesita
  • El número de la pila y
  • El dato a insertar.

30
Multipila
  • Para insertar se deben realizar las siguientes
    operaciones
  • MT1dato // insertar dato
  • inc(T1,1) // incrementar el tope de la pila
    número 1
  • Si deseamos insertar los datos -4 y -8 en la pila
    número 3, entonces debemos incrementar en uno el
    tope de la pila 3 por cada inserción.

31
Multipila
  • Cuando se pretende almacenar en la k-ésima pila y
    se tiene que TkLIk1, es decir, el tope de
    la k-ésima pila coincide con el límite inferior
    de la siguiente pila (k1-ésima pila), tenemos
    una saturación local.

32
Multipila
  • Por ejemplo, suponga que la pila 3 está saturada.
  • En este caso se pueden llevar a cabo los
    siguientes pasos
  • Buscar j tal que LIj1 - Tj gt0 y k-j sea
    mínimo.
  • sino existe j entonces tenemos una saturación
    total.
  • si existe entonces pasar al siguiente paso.

33
Multipila
  1. Mover una posición los elementos de las pilas k1
    hasta j hacia arriba cuando j gt k o bien, desde
    los elementos k hasta j1 hacia abajo cuando j lt
    k.
  2. Insertar el elemento.
  3. Actualizar LI y T

34
Multipila
  • Cabe mencionar que la pila j (pila seleccionada)
    es aquella pila que tiene al menos un lugar vacío
    (LIj1-Tj gt 0 o bien LIj1 ltgtTj ) y
    además es aquella pila que se encuentra más cerca
    de la pila saturada (k-j sea mínimo), entonces
    k-j nos da la distancia entre k y j.
  • Al darse estos movimientos de los elementos de
    las pilas, estamos modificando tanto los LI de
    las pilas como sus topes, por lo tanto se deben
    actualizar.

35
Multipila
  • Cuando los movimientos sea hacia arriba se
    incrementan los LI y los topes de las pilas que
    se mueven, y cuando los movimientos son hacia
    abajo se decrementan.
  • En el caso de la eliminación, ésta operación se
    realiza de la misma manera que para una pila
    normal, con la diferencia de que necesitamos un
    parámetro para esta operación el número de la
    pila de donde queremos eliminar.
Write a Comment
User Comments (0)
About PowerShow.com