Sei sulla pagina 1di 15

ESTRUCTURAS DE DATOS

y ALGORITMOS
Licenciatura en Ciencias de la
Computacin

Tipo Abstracto de Datos Lista

T.A.D. LISTA
Estructuras de Datos y
Algoritmos

LISTAS

Las listas son estructuras de datos flexibles


porque pueden crecer y contraerse, y los
elementos accedidos, insertados y
eliminados en cualquier posicin de la lista.
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Especificacin (1)

Lista: Secuencia de 0 o mas elementos de un tipo


determinado, que puede crecer y contraerse sin restriccin.

L = (a1, a2, ....., an) , n>=0

n : longitud de la lista
Si n=0, tenemos una lista vaca : L=( )
Si n>0, entonces consideramos que:
ai es el i-esimo elemento
a1 es el primer elemento
an es el ltimo elemento
ai precede a ai+1, para 1<=i<n
ai sucede a ai-1, para 1<i<=n
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Especificacin (2)


Operaciones Abstractas
Sean L: Lista; X: elemento y p,p1:
posiciones
NOMBRE ENCABEZADO FUNCION ENTRADA SALIDA
Insertar Insertar(X,L,p) Ingresa el elemento L,Xyp L=(a1,.,ap-1 ,X,ap+1,..,an)
X, en la lista L, en o
la posicin p L=(a1, ..,an,X) o
L=(X), si 1<=p<=n+1;
Error en caso contrario

Suprimir Suprimir(X,L,p) Elimina de L, el Lyp L=(a1,....., ap-1,ap+1,...) y


elemento que se X=ap , si 1<=p<=n;
encuentra en la Error en caso contrario
posicin p
Recuperar Recuperar(L,p,X) Recupera de L, el Lyp X=ap, si L=(a1,,ap,,an)
elemento que se y 1<=p<=n ;
encuentra en la Error en caso contrario
posicin p
Buscar Buscar(X,L,p) Localiza en la lista LyX p=i, si L=(a1,,ai=X,,an)
L, el elemento X ; Error en caso contrario
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Especificacin (3)


Operaciones Abstractas Sean L: Lista; X: elemento y p,p1:
posiciones
NOMBRE ENCABEZADO FUNCION ENTRADA SALIDA
Primer_elemento Primer_elemento (L,X) Reporta el primer L X=a1, si n>0 ; Error en caso
elemento de L contrario
Ultimo_elemento Ultimo_elemento (L,X) Reporta el ltimo L X=an, si n>0 ; Error en caso
elemento de L contrario
Siguiente Siguiente(L,p,p1) Recupera la posicin Lyp p1=p+1, si 1< =p<n;
siguiente a p Error en caso contrario
Anterior Anterior(L,p,p1) Recupera la posicin Lyp p1=p-1, si 1< p<=n;
anterior a p Error en caso contrario
Recorrer Recorrer(L) Procesa todos los L Est sujeta al proceso que se
elementos de L realice sobre los elementos de L
Crear Crear(L) Inicializa L L L=( )
Vaca Vaca(L) Evala si L tiene L Verdadero si L No tiene
elementos elementos, Falso en caso
contrario.
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Representacin (1)

Representacin
secuencial

an n-1

L = (a1, a2, ....., ..... n-1


an)
Ult
a1 0

Elementos
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Representacin (2)

Representacin
encadenada:
L = (a1, a2, .....,
an)

Cab Cant

a1 an
T.A.D. LISTA Estructuras de Datos y
Algoritmos
Construccin de operaciones abstractas
(1)

R
E
P S Max- Max-1
R E 1
C an
E n
S U
E E an ......
N n-1
N
T C ....... Ult ai Ult
A I
Insertar(X,L,p=i)
C A ai n-1 X n
I L i-1
...... ......
N
a2 a2
1 1
a1 Elementos a1 Elementos
0 0
Estructuras de Datos y
T.A.D. LISTA Algoritmos

Construccin de operaciones abstractas


(2)
Cab Cant

R
E a1 ai-1 ai an
P E
R N
E C
S A
D Insertar(X,L,p=i)
E
N E
T N
A Cab Cant
A
C D
n+1
I A

a1 ai-1 ai an

X
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Representacin (3)

R
E
P Representacin Secuencial
R
E
S
E
N Variables dinmicas
T
A Representacin
C
I Encadenada

Cursores: enteros que


N indican posiciones en un
arreglo o en otros tipos
de datos
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Representacin (4)


Cab Cant
R
E 3 L
P
R item sig
B
E
A a1 a2 a3
S a1 1 0
S
E Lista L con representacin Ca Can a2 2
A
N enlazada b0 t
3
D a3 -1
T
A
A + L
C item sig
E
I
N
0
N
C Max-1

E U
N R espacio
C S Lista L representada con
A O cursores, sobre arreglo
D R
E
Max-1
N
A
D espacio
A Espacio para
cursores, definido
Estructuras de Datos y
T.A.D. LISTA Algoritmos

Construccin de operaciones abstractas


(3)
R Cab Cant
E
4 L
P
R
B L = (a1, a2, a3)
E
A
S
S a1 y a2 a3
E
A Insertar(X=y,L,p=2)
N
D
T
A
A
item Sig
C
E
I

N L = (a1,y,a2,a3) a1 3 0
Cab Cant a2 2 1
N
C 0 4
a3 -1 2
E U
R y 1 3
N L
C S
A O
D R
E Max-1
N
A espacio
D
A
Estructuras de Datos y
Algoritmos
Lista L coexistiendo con Pila de espacios disponibles

Info Sig L = (a1,y,a2,a3)


R Lista L
E a1 3 0
P Cab Cant a2 2 1
R
B 0 4
Pila de espacios
E a3 -1 2
A disponibles
S
S
E y 1 3
A
N L
D
T
A
A Disponible
C
E
I 4
N

Max-1
N
C
E U
N R espacio
C S
A O
D R Suprimir(X,L,p=3)
E
N ?
A L= ( a1, y, a2, L= ( a1, y, a3)
D a 3)
A
Estructuras de Datos y
Algoritmos

T.A.D. LISTA Representacin (4)


item sig

a1 3 0 Disponibl
Cab Cant 4 e 1
1 Registro 0: Cumple la funcin del
0 3
a3 -1 2 campo Disponible, contenido este en
el Campo 2, pero en esta oportunidad
y 2 3 se adiciona la cantidad de registros
L
5 4 libres intercalados, contenida en
Campo 1.
Registro 1: Este registro contiene
Max-1 Max-1
cab en Campo 2, y cant en Campo 1,
-1 ambos correspondientes a la lista L.
Registros 2, 4 y 5: representan a las
tres celdas de la lista L=( a1, y, a3).
espacio En ellas Campo 1, es el recproco de
item, mientras que Campo 2 lo es de
sig.
Registro 3: Este es el nico registro
que pertenece, en esta instancia, a la
pila de espacios libres.
1 3
Campo 1 a1 a3 y
Archivo F conteniendo la
3 2 5 -1 -1 4 lista L y la pila de espacios
Campo 2
libres.

0 1 2 3 4 5 .....................

Registros
Sistemas de Datos

T.A.D. LISTA
ORDENADA POR CONTENIDO

Lista ordenada por contenido: Lista en la que debe


conservarse un orden lineal entre los valores de alguno de los
atributos que conforman sus elementos.

Que modificacin requiere la


especificacin de Lista?

Insertar(X,L)
Entrada : L=(a1,.,an) n>=0 y X
Funcin : Insertar el elemento X manteniendo el orden
lineal de L, esto es, ai<=ai+1, para 1<=i<n.
Salida: L=(a1,...,ai,X,ai+1,....,an) si ai<=X<ai+1,
1<=i<n
L=(X,a1,....,an) si X<a1
L=(a1,....,an,X) si an<X

Potrebbero piacerti anche