Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
007 listas
1. M.Sc. Javier David Chávez Centeno
DEPARTAMENTO ACADÉMICO DE INFORMÁTICA
jdchavez5@hotmail.com
CUSCO – PERÚ
2014
2. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 2Dpto Académico de Informática
UNIDAD II
TEMA
Listas Enlazadas
3. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 3Dpto Académico de Informática
CONTENIDO
1.1 Concepto
1.2 Representación de listas
1.3 Representación recursiva
1.4 El TAD lista recursiva
1.5 Ejemplos
4. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 4Dpto Académico de Informática
1.1 CONCEPTO
Una lista puede definirse como una n-tupla
dinámica ordenada:
L = (e1, e2, …., en)
Tipos:
-Listas homogéneas
-Listas heterogéneas.
5. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 5Dpto Académico de Informática
1.2 REPRESENTACIÓN DE LISTAS
Representación convencional
Utiliza nodos constituidos por dos partes:
la primera almacena la información y la
segunda parte es un puntero que
almacena la dirección del siguiente
elemento:
Parte de la
información
Dirección
del sgte.
elemento
6. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 6Dpto Académico de Informática
1.2 REPRESENTACIÓN DE LISTAS
Las listas en consecuencia son una
secuencia de nodos enlazados. Ej. Lista de
ciudades:
Una lista tipo diccionario:
casa house rojo red zorro nfox
Cusco Puno Ica Tacna n
7. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 7Dpto Académico de Informática
1.2 REPRESENTACIÓN DE LISTAS
Una representación más general es utilizar
nodos donde sus dos componentes son
punteros:
Así, las dos listas anteriores quedan
representadas de la siguiente manera:
Parte de la
información
Dirección
del sgte.
elemento
8. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 8Dpto Académico de Informática
1.2 REPRESENTACIÓN DE LISTAS
n
Cusco TacnaIcaPuno
n
casa house rojo red zorro fox
9. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 9Dpto Académico de Informática
1.3 REPRESENTACIÓN RECURSIVA
La definición recursiva de una lista es:
Gráficamente tenemos:
Lista n
elementos
Primer
elemento
Lista n -1
elementos
= +
nuloTacnaCusco Puno Ica
Lista de 4 elementos
Lista de 3 elementos
Lista de 2 elementos
Lista de 1 elemento
10. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 10Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Nombre del TAD: Lista
Descripción informal del TDA:
Una lista es una secuencia de elementos.
Lista = (elemento1, elemento2, ….,
elementon)
Recursivamente se define como:
Lista n elem.= Primer elemento + Lista n-1
elem.
11. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 11Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Especificación de la clase CLista
Elementos de la clase:
Lista = (Elemento, SubLista)
^ Elemento є Objeto
^ SubLista є Lista
12. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 12Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Operaciones
Operaciones primitivas
Lista: Lista
Lista: Objeto x Lista Lista
ModificarElemento: Objeto x Lista Lista
ModificarSubLista: Lista x Lista Lista
Elemento: Lista Objeto
SubLista: Lista Lista
EsVacia Lista Booleano
13. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 13Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Operaciones derivadas
Insertar: Objeto x Entero x Lista Lista
Ubicacion: Objeto x Lista Entero
Iesimo: Entero x Lista Objeto
Eliminar: Entero x Lista Lista
Longitud: Lista Entero
14. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 14Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Axiomas
Definición de variables:
e : Objeto
lista : Lista
k : Entero
k = Ubicacion(e,Insertar(e,k,lista))
e = Iesimo(k,Insertar(e,k,lista))
lista = Eliminar(k,Insertar(e,k,lista))
lista =
Eliminar(Ubicación(“Ica”,Lista(“Ïca”,lista)),lista)
0 = Longitud(Lista())
15. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 15Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Descripción de las operaciones
Operación insertar
Nombre operación: insertar
Descripción operacional:
Insertar: Objeto x Entero x Lista Lista
Explicación de la operación:
Inserta un elemento en una determina ubicación de la lista.
Si i =1, inserta al inicio.
Si i = Longitud(lista)+1, inserta al final
Modelo:
Caso Base
Lista(e,lista) si i = 1
Insertar (e,i,lista) =
Caso Recurrente
Insertar (e,i,SubLista(lista)) si i > 1
16. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 16Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Especificación del algoritmo
Diccionario de Variables
Resultados
lista = Lista con elemento insertado en la ubicación i
Datos
e = elemento : Objeto
i = ubicación en la que se debe insertar : Entero
lista = Lista de elementos : Lista
Pre condición
{| 1 <= i <= longitud(lista)+1 |}
Acción que debe realizar el algoritmo
Insertar un elemento en una lista
Pos condición
{| lista = lista con e en la ubicación i |}
17. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 17Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Operación Ubicacion
Nombre operación: Ubicación
Descripción operacional:
Ubicacion: Objeto x Lista Entero
Explicación de la operación:
Determina la ubicación en la que se encuentra un elemento en la lista.
Si el elemento no esta en la lista, devuelve CERO
Modelo:
Caso Base
0 si EsVacia(lista)
1 si e=Elemento(lista)
Ubicacion(e,lista) =
Caso Recurrente
1+ Ubicacion(e,subLista(lista)) si no EsVacia(lista)
si e<>Elemento(lista)
18. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 18Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Operación Iesimo
Nombre operación: Iésimo
Descripción operacional:
Entero x Lista Objeto
Explicación de la operación:
Determina el i ésimo elemento de la lista
Modelo:
Caso Base
Elemento(lista) si i = 1
Iesimo(i,lista) =
Caso Recurrente
Iesimo(i-1,SubLista(lista)) si i > 1
19. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 19Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Operación Eliminar
Nombre operación: Eliminar
Descripción operacional:
Entero x Lista Lista
Explicación de la operación:
Elimina el i ésimo elemento de la lista
Modelo:
Caso Base
lista = subLista (lista) si i = 1
Eliminar(i,lista) =
Caso Recurrente
Eliminar(i -1,SubLista(lista)) si i > 1
20. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 20Dpto Académico de Informática
1.4 EL TAD LISTA RECURSIVA
Operación Longitud
Nombre operación: Longitud
Descripción operacional: Lista Entero
Explicación de la operación:
Determina el número de elementos de la lista
Modelo:
Caso Base
0 si EsVacia(lista)
Longitud(lista) =
Caso Recurrente
1 + Longitud(subLista(lista)) si no EsVacia(lista)
21. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 21Dpto Académico de Informática
1.5 IMPLEMENTACIÓN DEL TAD LISTA RECURSIVA
public class CLista
{
// ============= Atributos ================
private Object aElemento;
private CLista aSubLista;
// ============= Metodos =================
// ------------ Constructores --------------------------------
public CLista()
{
aElemento=null;
aSubLista=null;
}
// -------------------------------------------------------------------
public CLista(Object pElemento,CLista pSubLista)
{
aElemento=pElemento;
aSubLista=pSubLista;
}
22. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 22Dpto Académico de Informática
1.5 IMPLEMENTACIÓN DEL TAD LISTA RECURSIVA
// ----------------- Propiedades -----------------------
public Object elemento
{
get
{ return aElemento; }
set
{ aElemento=value;}
}
// -----------------------------------------------------------
public CLista subLista
{
get
{ return aSubLista; }
set
{ aSubLista=value; }
}
23. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 23Dpto Académico de Informática
1.5 IMPLEMENTACIÓN DEL TAD LISTA RECURSIVA
// ------------ Otros métodos --------------------------------------
public bool EstaVacia()
{
return ((aElemento==null) && (aSubLista==null));
}
// ---------- Operacion Longitud -----------------------------------
public int Longitud()
{
if (EstaVacia())
return 0;
else
return 1 + aSubLista.Longitud();
}
24. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 24Dpto Académico de Informática
1.5 IMPLEMENTACIÓN DEL TAD LISTA RECURSIVA
// ----- Operacion Iesimo -------------------------------
protected Object iesimo(int posicion)
{
if (posicion==1)
return aElemento;
else
return aSubLista.iesimo(posicion-1);
}
// -----------------------------------------------------------
public Object Iesimo(int posicion)
{ // validar la posicion
if (1<=posicion && posicion <= Longitud())
return iesimo(posicion);
else
{ // la posición no es correcta
Console.WriteLine("ERROR: Posición incorrecta");
return null;
}
}
25. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 25Dpto Académico de Informática
1.5 IMPLEMENTACIÓN DEL TAD LISTA RECURSIVA
// ---------- Operación Eliminar ----------------------------
protected void eliminar(int posicion)
{
if (posicion==1)
{ // quitar el elemento actual
aElemento=aSubLista.elemento;
aSubLista=aSubLista.subLista;
}
else // eliminar en la sublista
aSubLista.eliminar(posicion-1);
}
// -----------------------------------------------------------------
public void Eliminar(int posicion)
{ // validar la posicion
if (1<=posicion && posicion <= Longitud())
eliminar(posicion);
else
Console.WriteLine("ERROR: Posición incorrecta");
}
26. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 26Dpto Académico de Informática
1.5 IMPLEMENTACIÓN DEL TAD LISTA RECURSIVA
//------------ Operación mostrar ----------------------
public void Mostrar()
{//-- muestra el elemento y el resto de la lista
if (!(EstaVacia()))
{
Console.WriteLine(aElemento);
aSubLista.Mostrar();
}
}
} //--- fin de CLista
27. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 27Dpto Académico de Informática