Tipos de Datos Abstractos Listas (Estructura de Datos Estatica)
-
Upload
marbella-castaneda -
Category
Documents
-
view
828 -
download
0
Transcript of Tipos de Datos Abstractos Listas (Estructura de Datos Estatica)
Tipos de Datos Abstractos
LISTAMarbella Castañeda
Email: [email protected]
Tipos de Datos AbstractosTDA LISTA
• Representación Gráfica
Gráficamente podríamos ver la LISTA L de esta forma:
POSICIÓN
1 2 n – 1 n
…
e1: ELEMENTO : ENTERO
Tipos de Datos AbstractosTDA LISTA
• Representación Interna
Seleccionemos una estructura de datos estática arreglo para representar e
implementar el TDA LISTAS. Asumamos que los ELEMENTOS que contiene la
LISTA son representados por el tipo ENTERO. La cantidad de ELEMENTOS que
puede contener la LISTA tiene un máximo de n ELEMENTOS.
Por lo que la representación formal de este tipo se define de la siguiente manera:
TipoLISTA= arreglo [1..n] de ENTEROS;
VarL : LISTA;
Tipos de Datos AbstractosTDA LISTA
Tipos de Datos AbstractosTDA LISTAS
• Implementación
Procedimiento LISTA_VACÏA (Var L :LISTA)
var
i : ENTERO;
principio
Para i := 1 hasta n hacer
L[ i ] := 0;
fin;
• Implementación
Función ES_VACÍA(L :LISTA) : LÓGICO
principio
Si L [ 1 ] = 0 entonces ES_VACÏA := Verdad
Sino ES_VACÏA := Falso;
Fin;
Tipos de Datos AbstractosTDA LISTA
• Implementación
Procedimiento Insertar (Var L :LISTA, p: POSICIÓN, e : ENTERO)
var
i : ENTERO;
principio
Si L [p] <> 0 entonces
mientras (i <=n) y ( L [i ] <> 0 ) hacer
principio
sig := l[p];
l[i] := e;
e := sig;
fin;
l [ i ] := e;
fin;
• Implementación
Función ANTECESOR (L :LISTA, p:ENTERO) : ENTERO;
principio
ANTECESOR := L[p – 1];
Fin;
Tipos de Datos AbstractosTDA LISTA
• Implementación
Función SUCESOR (L :LISTA, p:ENTERO) : ENTERO;
principio
SUCESOR := L[p + 1];
Fin;
• Implementación
Procedimiento Eliminar (VAR L : LISTA, p : ENTERO)
Principio
Mientras (p <= n) y ( L[p] < > 0 ) hacer
L [p] := L [p + 1];
Fin;
Tipos de Datos AbstractosTDA LISTA
• Implementación
Procedimiento RECORRER (L :LISTA)
var
i : ENTERO;
Principio
Mientras (i <= n) y ( L[i] < > 0 ) hacer
Escribir (L[i]);
fin;
• Implementación
Función BUSCAR(L :LISTA, E:ENTERO) : ENTERO
var
i : ENTERO;
Principio
i .= 1;
mientras (i <= n) y (S[ i ] <> E) hacer
principio
i := i + 1;
fin;
Si i > n entonces
principio
escribir(“el elemento”, e, “no se encuentra en la lista”);
BUSCAR := 0;
fin;
Sino
BUSCAR := i;
Fin;
Tipos de Datos AbstractosTDA LISTA
• Implementación
Función FINAL (L :LISTA) : ENTERO
var
i : ENTERO;
principio
i:=1;
Mientras (i <= n) y (S [ i ] < > “”) hacer
principio
i:= i + 1;
fin;
Si i <= n y S[ i ] = “” entonces
FINAL := i
fin;
• Implementación
Función PRIMERO (L :LISTA) : ENTERO
var
e : ENTERO;
principio
Si S[1] <> “” entonces e : = S [1]
sino
e : = “”
PRIMERO := e;
fin;
Tipos de Datos AbstractosTDA LISTA
• Implementación
Función ACCESAR(L :LISTA, P:ENTERO) : ENTERO
Principio
ACCESAR := L [ P];
Fin;
• Implementación