SlideShare una empresa de Scribd logo
SESIÓN 09:
Listas Doblemente Enlazadas
y
Listas Circulares
Pregrado
Lista doblemente
enlazada
2
Cada nodo contiene dos enlaces, uno a
su nodo predecesor y el otro a su nodo
sucesor. La lista es eficiente tanto como
en recorrido directo (“adelante”) como en
recorrido inverso (“atras”).
Nodo
public class Nodo {
private int data; // almacena el dato
private Nodo sig; //”enlace” al próximo nodo
private Nodo ant; // ”enlace” al anterior nodo
}
3
ant sig
public class Nodo {
int dato;
Nodo sig;
Nodo ant;
public Nodo(int num)
{ dato=num;
sig=ant=null;
}
}
Operaciones de una lista doblemente enlazada
● Añadir o insertar elementos.
● Buscar elementos.
● Borrar elementos.
● Moverse a través de la lista, siguiente y anterior.
4
Inicio fin
sig
ant
Insertar nuevo nodo
Insertar nodo en la primera posición
InsertaNodo( nodo)
1-. Nodosiguiente // debe apuntar a Lista.
2-. Nodoanterior y Listaanterior // debe apuntar a null
3-. Listaanterior //debe apuntar a nodo.
5
Nuevo
nodo
1
…
3
2
null
Dato Dato Dato
public class Nodo {
int dato;
Nodo sig;
Nodo ant;
public Nodo(int num)
{ dato=num;
sig=ant=null;
}
}
Nodo InsertaInicio(Nodo inicio, int num)
{ Nodo nuevo=new Nodo(num); // se llama al constructor
//Realizando los enlaces correspondientes
nuevo.sig=inicio;
if(inicio==null) // solo para la primera vez
{ fin=nuevo;
fin.sig=null;
}
if(inicio!=null)
inicio.ant=nuevo;
inicio=nuevo;
return inicio;
}
Nuevo
nodo
Recorrido en una lista doble
int Suma(Nodo inicio)
{ Nodo aux=inicio;
int suma=0;
//Recorriendo la lista
while(aux!=null)
{ //Sumando los datos
suma=suma+aux.dato;
//Avanzando al siguiente nodo
aux=aux.sig;
}
return suma;
}
HACIA ADELANTE
int Suma(Nodo fin)
{ Nodo aux=fin;
int suma=0;
//Recorriendo la lista
while(aux!=null)
{ //Sumando los datos
suma=suma+aux.dato;
//Retrocediendo al nodo anterior
aux=aux.ant;
}
return suma;
}
HACIA ATRAS
Eliminar
Caso 1 Eliminar el único nodo
En este caso, ese nodo será el apuntado por Lista.
1.- Eliminamos el nodo.
2.- Hacemos que Lista apunte a NULL.
8
Caso 2
Caso 2.1Eliminar el primer nodo
eliminaPrimer( nodo)
1.- Si nodo apunta a Lista // hacemos que Lista apunte
Lista=siguiente.
2.- Hacemos que nodo=siguiente=anterior// apunte a
NULL
3.- Borramos el nodo apuntado por nodo.
9
Caso 2.2 Eliminar un nodo intermedio
eliminaMedio(nodo)
1-. Si nodo apunta a Lista
Lista=siguiente
2-. nodo= siguiente
3-. Nodo = anterior
4-. Borramos el nodo apuntado por nodo
10
Caso 3 Eliminar el último nodo
eliminaUltimo(nodo)
1-. Si nodo apunta a Lista
Lista=anterior.
2- nodo=anterior=siguiente apunte a NULL
3-. Borramos el nodo apuntado por nodo.
11
void Eliminar(Nodo inicio, int elem)
{ Nodo actual;
boolean encontrado=false;
actual=inicio;
while((actual!=null)&& (!encontrado)) //bucle de Búsqueda
{ encontrado=(actual.dato==elem); // se actualiza elvalor de encontrado
if(!encontrado) // severifica para pasar al siguiente nodo
actual=actual.sig;
}
//Realizando los enlaces
if (actual != null) // se verifica si se encontro el elemento buscado
{ if (actual == ini)
{ ini = actual.sig; // borrar el primero
if(actual.sig!=null)
actual.sig.ant=null;
}
else if (actual.sig!=null) // No es el ultimo
{ actual.ant.sig=actual.sig;
actual.sig.ant=actual.ant;
}
else
{ actual.ant.sig=null; // el ultimo
fin=actual.ant; // moviendo el final
}
actual=null;
}
}
BUSCAR UN NODO CON
ALGUNA CARACTERÍSTICA
Nodo Buscar(Nodo inicio,String cod)
{ //Generamos un puntero y lo colocamos al inicio de la lista
Nodo pos=inicio;
//Recorriendo la lista para encontrar la información
while(pos!=null && !cod.equalsIgnoreCase(pos.codigo))
pos=pos.sig;
//Retorno de la posición del dato
return pos;
}
public class Nodo{
// atributos
public String codigo;
// puntero al siguiente nodo
public Nodo sig ;
public Nodo ant;
// el constructor de nodos
Nodo (String cod)
{ codigo=cod;
ant = sig = null;
}
}
Construya una aplicación
que utilice listas
doblemente enlazadas y
que permita realizar el
registro de empleados
donde se podrá guardar,
mostrar, consultar,
actualizar y eliminar el
registro de empleado. Para
todas estas operaciones
considere el ingreso del
código del empleado.
EJEMPLO
DECLARACIÓN DEL CLASE NODO
BOTÓN GUARDAR
BOTÓN
CONSULTAR
BOTÓN ACTUALIZAR
BOTÓN
ELIMINAR
Lista Circular
El ultimo elemento (cola) se enlaza
al primer elemento (cabeza), de tal
modo que la lista puede se
recorrida de modo circular (“anillo”)
● Una lista circular es una lista lineal en la que el último nodo a punta
al primero.
22
inicio
fin
Operaciones de una lista circular
Las operaciones que se pueden realizar sobre las listas
circulares :
○ Añadir o insertar elementos.
○ Buscar o localizar elementos.
○ Borrar elementos.
○ Moverse a través de la lista
23
Declaración de una lista circular
public class Nodo {
int dato;
Nodo enlace;
public Nodo(int num)
{ dato=num;
enlace=this;
}
}
Los elementos de lista pueden ser de cualquier tipo, solo varia a
las demas listas en el constructor, la referencia enlace en vez de
inicializarla a null se inicializa para que apunte al mismo nodo, asi
forma una lista circular de un solo nodo
Insertar un elemento
Insertar elemento en la lista vacía
● lista apunta a nodo.
● Listasiguiente apunte a nodo.
Insertar elemento en una lista no vacía
1. Hacemos que nodo = siguiente apunte a lista = siguiente.
2. Después que lista = siguiente apunte a nodo.
25
Nodo InsertaFinal(Nodo lc, int num)
{ //Llamada al constructor
Nodo nuevo=new Nodo(num);
//Realizando los enlaces correspondientes
if(lc!=null)
{ nuevo.enlace=lc.enlace;
lc.enlace=nuevo;
}
lc=nuevo;
return lc;
}
public class Nodo {
int dato;
Nodo enlace;
public Nodo(int num)
{ dato=num;
enlace=this;
}
}
RECORRIDO DE UNA LISTA CIRCULAR
27
int Resumen()
{ int suma=0;
Nodo p;
if(lc!=null) // verificando si la lista es vacia
{ p=lc.enlace;
do
{
suma=suma+p.dato; // sumando los datos
p=p.enlace; // pasando a la siguiente posicion
}while(p!=lc.enlace);
return suma;
}
public class Nodo {
int dato;
Nodo enlace;
public Nodo(int num)
{ dato=num;
enlace=this;
}
}
Eliminar un elemento de la lista
● Eliminar el único nodo de la lista.
1. lista = siguiente mientras lista = siguiente sea distinto de nodo.
2. Hacemos que lista = siguiente apunte a nodo = siguiente.
3. Eliminamos el nodo.
● Eliminar un nodo en una lista circular con más de un
elemento
1. Borramos el nodo apuntado por lista.
2. Hacemos que lista valga NULL.
28
Eliminar un elemento de la lista
● Caso general
1. Copiamos el contenido del nodo = siguiente sobre el
contenido de nodo.
2. Hacemos que nodo = siguiente apunte a nodo = siguiente =
siguiente.
3. Eliminamos nodo = siguiente.
4. Si lista es el nodo = siguiente, hacemos lista = nodo.
29
void Eliminar(Nodo lc, int elem)
{ Nodo actual;
boolean encontrado=false;
actual=lc;
while((actual.enlace!=lc)&& (!encontrado)) //bucle de Busqueda
{ encontrado=actual.enlace.dato==elem;
if(!encontrado) actual=actual.enlace;
}
//Verificando el dato nuevamente
encontrado=actual.enlace.dato==elem;
//Enlace de nodo anterior con el siguiente
if (encontrado)
{ Nodo p;
p=actual.enlace; // Nodo a Eliminar
if(lc==lc.enlace) lc=null; //Lista con un solo nodo
else
{ if(p==lc) lc=actual; // Se borra el elemento referenciado por lc el nuevo acceso a la lista es el
anterior
actual.enlace=p.enlace;
}
}
}
public class Nodo {
int dato;
Nodo enlace;
public Nodo(int num)
{ dato=num;
enlace=this;
}
}
Nodo Buscar(Nodo lc,int elem)
{ Nodo actual;
boolean encontrado=false;
actual=lc;
//bucle de Busqueda
while((actual.enlace!=lc)&& (!encontrado))
{ encontrado=actual.enlace.dato==elem;
if(!encontrado)
actual=actual.enlace;
}
// se retorna la referencia
return actual.enlace;
}
BUSCAR UN NODO CON ALGUNA
CARACTERÍSTICA
public class Nodo {
int dato;
Nodo enlace;
public Nodo(int num)
{ dato=num;
enlace=this;
}
}
Construya una aplicación
que utilice listas circular y
que permita realizar el
registro de empleados
donde se podrá guardar,
mostrar, consultar,
actualizar y eliminar el
registro de empleado. Para
todas estas operaciones
considere el ingreso del
código del empleado.
EJEMPLO
DECLARACIÓN DEL CLASE NODO
BOTÓN GUARDAR
BOTÓN
CONSULTAR
BOTÓN ACTUALIZAR
BOTÓN
ELIMINAR
MÉTODO RESUMEN
Sesion_09.pptx

Más contenido relacionado

La actualidad más candente

Graph.pptx
Graph.pptxGraph.pptx
B tree
B  treeB  tree
Circular linked list
Circular linked listCircular linked list
Circular linked listdchuynh
 
Search tree,Tree and binary tree and heap tree
Search tree,Tree  and binary tree and heap treeSearch tree,Tree  and binary tree and heap tree
Search tree,Tree and binary tree and heap tree
zia eagle
 
Sorting Methods.pptx
Sorting Methods.pptxSorting Methods.pptx
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completoBoris Salleg
 
Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
Mohamed Lahby
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
K Manuel TN
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
DĴäîřo Lêmä
 
Búsqueda Binaria
Búsqueda BinariaBúsqueda Binaria
Búsqueda Binaria
Emerson Garay
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
José Antonio Sandoval Acosta
 
Chapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CChapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et C
Sana REFAI
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
Angel Vázquez Patiño
 
Unidad 3 Listas Java
Unidad 3 Listas JavaUnidad 3 Listas Java
Unidad 3 Listas Java
Jorge Magdaleno Rodela
 

La actualidad más candente (20)

Graph.pptx
Graph.pptxGraph.pptx
Graph.pptx
 
B tree
B  treeB  tree
B tree
 
Circular linked list
Circular linked listCircular linked list
Circular linked list
 
Search tree,Tree and binary tree and heap tree
Search tree,Tree  and binary tree and heap treeSearch tree,Tree  and binary tree and heap tree
Search tree,Tree and binary tree and heap tree
 
Sorting Methods.pptx
Sorting Methods.pptxSorting Methods.pptx
Sorting Methods.pptx
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Listas
ListasListas
Listas
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Búsqueda Binaria
Búsqueda BinariaBúsqueda Binaria
Búsqueda Binaria
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Chapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CChapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et C
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Unidad 3 Listas Java
Unidad 3 Listas JavaUnidad 3 Listas Java
Unidad 3 Listas Java
 
Teoria de listas
Teoria de listasTeoria de listas
Teoria de listas
 

Similar a Sesion_09.pptx

135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx
iq72024016
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datosmariajuly
 
Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas pptAby Castillo
 
Estructura de datos evidencias
Estructura de datos evidenciasEstructura de datos evidencias
Estructura de datos evidenciaslenithoz
 
Unidad tres estructura de datos
Unidad tres estructura de datosUnidad tres estructura de datos
Unidad tres estructura de datos
René Sosa Arana
 
Implementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxImplementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptx
Rafael nin
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadasguestbd36f7
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
René Sosa Arana
 
Listas encadenadas
Listas encadenadas Listas encadenadas
Listas encadenadas
Manuel Bocaranda
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas Circulares
Mago Julio Cesar
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datos
vanessa peñafiel
 
UNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IUNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IJULIO
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
Moises Medina
 

Similar a Sesion_09.pptx (20)

Estructuraskp
EstructuraskpEstructuraskp
Estructuraskp
 
135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas ppt
 
Estructura de datos evidencias
Estructura de datos evidenciasEstructura de datos evidencias
Estructura de datos evidencias
 
Unidad tres estructura de datos
Unidad tres estructura de datosUnidad tres estructura de datos
Unidad tres estructura de datos
 
05 listas1 t2018
05 listas1 t201805 listas1 t2018
05 listas1 t2018
 
Implementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxImplementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptx
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Listas encadenadas
Listas encadenadas Listas encadenadas
Listas encadenadas
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas Circulares
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datos
 
UNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IUNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{I
 
Lista simple
Lista simpleLista simple
Lista simple
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Lista enlazada
Lista enlazadaLista enlazada
Lista enlazada
 

Último

Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
MaribelGaitanRamosRa
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
MasielPMP
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
JAVIER SOLIS NOYOLA
 

Último (20)

Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
 

Sesion_09.pptx

  • 1. SESIÓN 09: Listas Doblemente Enlazadas y Listas Circulares Pregrado
  • 2. Lista doblemente enlazada 2 Cada nodo contiene dos enlaces, uno a su nodo predecesor y el otro a su nodo sucesor. La lista es eficiente tanto como en recorrido directo (“adelante”) como en recorrido inverso (“atras”).
  • 3. Nodo public class Nodo { private int data; // almacena el dato private Nodo sig; //”enlace” al próximo nodo private Nodo ant; // ”enlace” al anterior nodo } 3 ant sig public class Nodo { int dato; Nodo sig; Nodo ant; public Nodo(int num) { dato=num; sig=ant=null; } }
  • 4. Operaciones de una lista doblemente enlazada ● Añadir o insertar elementos. ● Buscar elementos. ● Borrar elementos. ● Moverse a través de la lista, siguiente y anterior. 4 Inicio fin sig ant
  • 5. Insertar nuevo nodo Insertar nodo en la primera posición InsertaNodo( nodo) 1-. Nodosiguiente // debe apuntar a Lista. 2-. Nodoanterior y Listaanterior // debe apuntar a null 3-. Listaanterior //debe apuntar a nodo. 5 Nuevo nodo 1 … 3 2 null Dato Dato Dato
  • 6. public class Nodo { int dato; Nodo sig; Nodo ant; public Nodo(int num) { dato=num; sig=ant=null; } } Nodo InsertaInicio(Nodo inicio, int num) { Nodo nuevo=new Nodo(num); // se llama al constructor //Realizando los enlaces correspondientes nuevo.sig=inicio; if(inicio==null) // solo para la primera vez { fin=nuevo; fin.sig=null; } if(inicio!=null) inicio.ant=nuevo; inicio=nuevo; return inicio; } Nuevo nodo
  • 7. Recorrido en una lista doble int Suma(Nodo inicio) { Nodo aux=inicio; int suma=0; //Recorriendo la lista while(aux!=null) { //Sumando los datos suma=suma+aux.dato; //Avanzando al siguiente nodo aux=aux.sig; } return suma; } HACIA ADELANTE int Suma(Nodo fin) { Nodo aux=fin; int suma=0; //Recorriendo la lista while(aux!=null) { //Sumando los datos suma=suma+aux.dato; //Retrocediendo al nodo anterior aux=aux.ant; } return suma; } HACIA ATRAS
  • 8. Eliminar Caso 1 Eliminar el único nodo En este caso, ese nodo será el apuntado por Lista. 1.- Eliminamos el nodo. 2.- Hacemos que Lista apunte a NULL. 8
  • 9. Caso 2 Caso 2.1Eliminar el primer nodo eliminaPrimer( nodo) 1.- Si nodo apunta a Lista // hacemos que Lista apunte Lista=siguiente. 2.- Hacemos que nodo=siguiente=anterior// apunte a NULL 3.- Borramos el nodo apuntado por nodo. 9
  • 10. Caso 2.2 Eliminar un nodo intermedio eliminaMedio(nodo) 1-. Si nodo apunta a Lista Lista=siguiente 2-. nodo= siguiente 3-. Nodo = anterior 4-. Borramos el nodo apuntado por nodo 10
  • 11. Caso 3 Eliminar el último nodo eliminaUltimo(nodo) 1-. Si nodo apunta a Lista Lista=anterior. 2- nodo=anterior=siguiente apunte a NULL 3-. Borramos el nodo apuntado por nodo. 11
  • 12. void Eliminar(Nodo inicio, int elem) { Nodo actual; boolean encontrado=false; actual=inicio; while((actual!=null)&& (!encontrado)) //bucle de Búsqueda { encontrado=(actual.dato==elem); // se actualiza elvalor de encontrado if(!encontrado) // severifica para pasar al siguiente nodo actual=actual.sig; } //Realizando los enlaces if (actual != null) // se verifica si se encontro el elemento buscado { if (actual == ini) { ini = actual.sig; // borrar el primero if(actual.sig!=null) actual.sig.ant=null; } else if (actual.sig!=null) // No es el ultimo { actual.ant.sig=actual.sig; actual.sig.ant=actual.ant; } else { actual.ant.sig=null; // el ultimo fin=actual.ant; // moviendo el final } actual=null; } }
  • 13. BUSCAR UN NODO CON ALGUNA CARACTERÍSTICA Nodo Buscar(Nodo inicio,String cod) { //Generamos un puntero y lo colocamos al inicio de la lista Nodo pos=inicio; //Recorriendo la lista para encontrar la información while(pos!=null && !cod.equalsIgnoreCase(pos.codigo)) pos=pos.sig; //Retorno de la posición del dato return pos; } public class Nodo{ // atributos public String codigo; // puntero al siguiente nodo public Nodo sig ; public Nodo ant; // el constructor de nodos Nodo (String cod) { codigo=cod; ant = sig = null; } }
  • 14. Construya una aplicación que utilice listas doblemente enlazadas y que permita realizar el registro de empleados donde se podrá guardar, mostrar, consultar, actualizar y eliminar el registro de empleado. Para todas estas operaciones considere el ingreso del código del empleado. EJEMPLO
  • 16.
  • 21. Lista Circular El ultimo elemento (cola) se enlaza al primer elemento (cabeza), de tal modo que la lista puede se recorrida de modo circular (“anillo”)
  • 22. ● Una lista circular es una lista lineal en la que el último nodo a punta al primero. 22 inicio fin
  • 23. Operaciones de una lista circular Las operaciones que se pueden realizar sobre las listas circulares : ○ Añadir o insertar elementos. ○ Buscar o localizar elementos. ○ Borrar elementos. ○ Moverse a través de la lista 23
  • 24. Declaración de una lista circular public class Nodo { int dato; Nodo enlace; public Nodo(int num) { dato=num; enlace=this; } } Los elementos de lista pueden ser de cualquier tipo, solo varia a las demas listas en el constructor, la referencia enlace en vez de inicializarla a null se inicializa para que apunte al mismo nodo, asi forma una lista circular de un solo nodo
  • 25. Insertar un elemento Insertar elemento en la lista vacía ● lista apunta a nodo. ● Listasiguiente apunte a nodo. Insertar elemento en una lista no vacía 1. Hacemos que nodo = siguiente apunte a lista = siguiente. 2. Después que lista = siguiente apunte a nodo. 25
  • 26. Nodo InsertaFinal(Nodo lc, int num) { //Llamada al constructor Nodo nuevo=new Nodo(num); //Realizando los enlaces correspondientes if(lc!=null) { nuevo.enlace=lc.enlace; lc.enlace=nuevo; } lc=nuevo; return lc; } public class Nodo { int dato; Nodo enlace; public Nodo(int num) { dato=num; enlace=this; } }
  • 27. RECORRIDO DE UNA LISTA CIRCULAR 27 int Resumen() { int suma=0; Nodo p; if(lc!=null) // verificando si la lista es vacia { p=lc.enlace; do { suma=suma+p.dato; // sumando los datos p=p.enlace; // pasando a la siguiente posicion }while(p!=lc.enlace); return suma; } public class Nodo { int dato; Nodo enlace; public Nodo(int num) { dato=num; enlace=this; } }
  • 28. Eliminar un elemento de la lista ● Eliminar el único nodo de la lista. 1. lista = siguiente mientras lista = siguiente sea distinto de nodo. 2. Hacemos que lista = siguiente apunte a nodo = siguiente. 3. Eliminamos el nodo. ● Eliminar un nodo en una lista circular con más de un elemento 1. Borramos el nodo apuntado por lista. 2. Hacemos que lista valga NULL. 28
  • 29. Eliminar un elemento de la lista ● Caso general 1. Copiamos el contenido del nodo = siguiente sobre el contenido de nodo. 2. Hacemos que nodo = siguiente apunte a nodo = siguiente = siguiente. 3. Eliminamos nodo = siguiente. 4. Si lista es el nodo = siguiente, hacemos lista = nodo. 29
  • 30. void Eliminar(Nodo lc, int elem) { Nodo actual; boolean encontrado=false; actual=lc; while((actual.enlace!=lc)&& (!encontrado)) //bucle de Busqueda { encontrado=actual.enlace.dato==elem; if(!encontrado) actual=actual.enlace; } //Verificando el dato nuevamente encontrado=actual.enlace.dato==elem; //Enlace de nodo anterior con el siguiente if (encontrado) { Nodo p; p=actual.enlace; // Nodo a Eliminar if(lc==lc.enlace) lc=null; //Lista con un solo nodo else { if(p==lc) lc=actual; // Se borra el elemento referenciado por lc el nuevo acceso a la lista es el anterior actual.enlace=p.enlace; } } } public class Nodo { int dato; Nodo enlace; public Nodo(int num) { dato=num; enlace=this; } }
  • 31. Nodo Buscar(Nodo lc,int elem) { Nodo actual; boolean encontrado=false; actual=lc; //bucle de Busqueda while((actual.enlace!=lc)&& (!encontrado)) { encontrado=actual.enlace.dato==elem; if(!encontrado) actual=actual.enlace; } // se retorna la referencia return actual.enlace; } BUSCAR UN NODO CON ALGUNA CARACTERÍSTICA public class Nodo { int dato; Nodo enlace; public Nodo(int num) { dato=num; enlace=this; } }
  • 32. Construya una aplicación que utilice listas circular y que permita realizar el registro de empleados donde se podrá guardar, mostrar, consultar, actualizar y eliminar el registro de empleado. Para todas estas operaciones considere el ingreso del código del empleado. EJEMPLO
  • 34.