UT1. Conceptos de Java para EDAs

Anuncio
UT1. Conceptos de Java para EDAs
Tema 4: Representación Enlazada
Bibliografía:
Weiss, M.A. Estructuras de datos en Java. Adisson-Wesley,
2000. Capítulo 16
Estudiar la Representación Enlazada de una Secuencia de
Datos mediante una Lista Enlazada Genérica (LEG)
Compararla con su ya conocida Representación Contigua
(mediante un array/ArrayList) utilizando criterios de eficiencia.
Estudiar la LEG Ordenada como una solución al problema
de la ordenación de los datos de una LEG
Definir diversos tipos de LEG en base a criterios de
eficiencia y sus correspondientes implementaciones: con
referencias a primer y último nodo, circular y doblemente
enlazada
Variables Referencia y Objetos Java
1. Representación Enlazada de una Secuencia de Datos: la Lista Enlazada
2. Implementación de una Lista Enlazada Genérica (LEG): la clase LEG
a. Atributos, métodos e instancias de la clase
b. Implementación de métodos de la clase: constructor e insertar,
métodos toString y toArray y métodos recuperar, indiceDe y
eliminar
una variable Referencia Java es, también,
un Enlace a un Objeto
3. Una solución al problema de la Ordenación de una LEG: la LEG Ordenada
Idea Básica para la Representación
4. Otras implementaciones en Java de una LEG: LEG con Referencias al
primero y último de sus Nodos, LEG Circular, LEG Doblemente Enlazada
Enlazada en Java de una Secuencia de
Datos
Introducción a la Representación Enlazada:
Referencias como Enlaces en Java
Introducción a la Representación Enlazada:
Referencias como Enlaces en Java
Trácese la ejecución del siguiente programa Java:
"#
!
"#
$
%
"#
&
'
'
Introducción a la Representación Enlazada:
Referencias como Enlaces en Java
Introducción a la Representación Enlazada:
Referencias como Enlaces en Java
Grupo de tres Figuras Enlazadas
$
%
&
"#
Para la Representación Enlazada de una Secuencia se
necesita encapsular convenientemente cada uno de sus
Datos junto con la Referencia o Enlace al siguiente
Tipos para la Representación Enlazada: Nodo y
Lista Enlazada
Def. recursiva de Nodo: un Nodo TIENE UN Dato de una Secuencia y
UN Enlace al Nodo con el Dato siguiente
Def. de Lista Enlazada: representación de una Secuencia de Datos
mediante una Lista de Nodos tal que:
1.- sólo se puede acceder a la Lista, o a uno de sus Nodos, vía
Referencia al primero de sus Nodos
2.- su último Nodo contiene una Referencia null como siguiente
Una Lista Enlazada es una Representación Enlazada Lineal de
una Secuencia de Datos alternativa a su ya conocida Representación
(o ) (
* )
Contigua (mediante un
Características de la Representación Enlazada
Los Nodos de una Lista no ocupan posiciones contiguas de
memoria sino que se sitúan dispersos en ésta, cada uno en la posición
que se le asigne en el momento de su creación via
(memoria
dinámica)
una mayor atención al implementar las operaciones
las operaciones de inserción y borrado de un Nodo no exigen
desplazamientos, tan sólo modificar los Enlaces oportunos
al
El acceso a la Lista o a uno de sus Nodos se realiza vía Referencia
de sus Nodos
el acceso a un Nodo distinto del
tiene un coste Temporal lineal con
la talla de la Lista y no constante como en una Representación Contigua; a
cambio, las operaciones de inserción y borrado de un Nodo no exigen
desplazamientos
Características de la Representación de una
Secuencia mediante una Lista Enlazada
!"
%
+,
1
1. Coste Espacial: lineal con la talla de la Secuencia que
representa, la misma que la de la Lista Enlazada
2. Coste Temporal: lineal con la talla de la Secuencia que
representa para cualquier operación de Recorrido o Búsqueda
sobre la Lista Enlazada
# $
&
* ./ 0
21 #1
#11
1 * ./ 0
* ./ 0
3
, -4
4
,
4
&2
&
*
*.
6
4
6
6 ) (
6
5
+
-4
4
*.
*.
'
# $!
()
!
-
21 #1 1
, -
+
9
*.
* ./ 0
21 #1
*.
21 #11
7
&1
*
1
* ./ 0
1
1
* .83
* ./ 0
1
& * ./ 0
:
:
*.
* ./ 0
* ./ 0
*.
61
*.
.
)
++
*.
'
*
2
* ./ 0
* ./2
0
* ./2
0
2
A
=
=
2
$%
(
= =
B
*
2
(
= =
B
8
*
=
2
,
(
= =
BFGB
=
=
=
'
=
=
=
'
>
=
=
=
'
=
=
=
'
8
+
8
=
=
=
'
=
=
=
'
(
?
'
$
=
@
* ./ 0
1
'
01)
, -
;
6
"
'
:
:
* ./ 0
'
1
9
++
<
<
*.
/
;
'
'
= =
H
1
4
C B
D=
$E4
C B
$E
I
+
:
@@
#
)4
*.
2 3
'
)4
:
@@
5 @@:
FJ >
*.
1
E
<=
* ./ 0
1
* ./ 0 >
'
5 1)
+
;
5 1)
* $
FJ
>
* .@@:
>
!
=
< = DD
'
6
77777777777
0
*.
+ 1) 4
"#$
> >6
.$
)
K
>
5 1)
* .6
:
@@
* .@@:
=
=
=
'
+
>
>
<=
+
#
2
&
!
!
" #$
&%
&
'
>
(
8
1
!
+
'
9
)4
) ( $
5 1)
/ 1
:
(
:
*.
H
I
,
,
1
* ./ 0
>
>
>
>L
>/ ) (
=
E
>
<
>=
>DD
,
,
1
* ./ 0
>
D
=
>=
>
>L
>
>=
DB
C B
,
+ 1) 4
1
* ./ 0
<
* $
.$
)
>
>L
>
>=
>
'
,
>? /
0
8
!
1
;& (
&
<& *
+
=& *
+
* ./ 0
'
'
'
+
> $
>
)
'
* ./ 0
) (
$
>
1
* ./ 0
>
,
8 ;
* ./ 0
<
>L
MM L
>=
,L
=;
>
>
>=
'
8 ;
+
5 1)
@
+
*.
'
/ 1
+
1
* ./ 0
<
,
'
/ 1
>
1
>
MM L >=
=;
* ./ 0
<
>
>
,
N$
>
>L
>=
>
>? /
>
>
>L
>
>? /
+ >
MM L >=
=;
>
>=
>
,
>=
(
=
=
=
=
=
'
#
>? /
1
A
B2 3
'
1
;
B
(
'
>
!,
>
/ 1
>? /
>
*.
6
>
1
* ./ 0
<
>
>L
9
MM L >=
>
6
=;
>
>=
D
6
77777777777
$
77777777777
,
77777777777
>
,
6
&&
'
A
4
)1
C
>
'
)1
/ 1
>? /
>
=
>=
1 O
"
)1
>
>
1
6
* ./ 0
<
>
>L
6
MM L >=
>
>
=;
>
>=
'
,
6
77777777777
$
77777777777
>
,
"
77777777777
)1
=
6
>=
NN
'
!#%
#& #
9
E
,
6
+ 1)
6
4 , -, -
'#
1 * ./ 0
1 * ./ 0
<
>L
>
'
:
:
=
,
L
'
'
1 * ./ 0 >
6 >
MM >=
=
>
>=
aux (
>
=
!#%
)
>
3
ant
+
> /E
primero
+
)
, -
"($
!#%"#$*#
).
-
)1
/ !#%
0+
.1
*.
!
(
2 !#% 3
!
4 !
5
$? 1
-
(. /
0
1+
#
,
* ./ 0
*.
!
!
1
*.
9
*. #
/0
1 * ./ 0
*.
#
:
:: ) )
6
=
=
=
'
=
=
=
'
>
+ F 1 , #
E
'
=
=
=
'
1
>
0
1
> =
=
=
' :
:P
8
=
=
=
' :
:A
'
1
=
=
=
=
+ F 1 , -
=
=
=
K
) 2
,
DD
'
* ./ 0 >6
5
F
2
+
+ F 1
, -
+
, -
9
3
* .+
1
*.
*.
2
1
1
/0
* ./ 0
*.
=
=
='
E '
=
=
=
'
=
=
=
'
:
:: ) )
5
=
=
=
=
1
>
0
=
=
=
' :
: $E
>
=
=
=
' :
: $$
=
=
=
'
1
+
, -
!4 1
B
B
,
3
L
, 1
* ./ 0
D
D
>
>
>L
>
>
+
*.
1
1
1
&
1
-
DB
C B
DB
C B
0
'
'
*
=
=
=
=
1
!
1
5
!
!
=
=
=
=
!
5
!4 1
!
"
9
1
1
1
*
+.
, -
9
$
!
*
+ ./ 0
1
*
+ ./ 0
*
+.
<
6 6
'
1
!
, -
6
*
+.
, *
+ ./ 0
=
=
='
=
=
=
'
E '
>
61
*
+ ./ 0 61
:
:: ) )
*
+ ./ 0
=
=
=
'
1
0
>
<
<
<
=
=
=
':
:
>
=
=
=
':
:
=
=
=
'
'
'
1
!
, -
0
>
1
*
+ ./ 0
,
1
L
*
+ ./ 0 >6
6
=
4
5
DD
'
!
6
!
'
=
=
=
=
!
5
!
, "
Descargar