M.Sc. Javier David Chávez Centeno
DEPARTAMENTO ACADÉMICO DE INFORMÁTICA
jdchavez5@hotmail.com
CUSCO – PERÚ
2014
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
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
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.
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
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
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
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
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
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.
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
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
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
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())
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
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 |}
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)
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
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
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)
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;
}
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; }
}
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();
}
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;
}
}
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");
}
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
UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2014
JAVIER DAVID CHÁVEZ CENTENO 27Dpto Académico de Informática

007 listas

  • 1.
    M.Sc. Javier DavidChávez Centeno DEPARTAMENTO ACADÉMICO DE INFORMÁTICA jdchavez5@hotmail.com CUSCO – PERÚ 2014
  • 2.
    UNIVERSIDAD DE SANANTONIO ABAD DEL CUSCO – PERÚ - 2014 JAVIER DAVID CHÁVEZ CENTENO 2Dpto Académico de Informática UNIDAD II TEMA Listas Enlazadas
  • 3.
    UNIVERSIDAD DE SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO 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 SANANTONIO ABAD DEL CUSCO – PERÚ - 2014 JAVIER DAVID CHÁVEZ CENTENO 27Dpto Académico de Informática