SlideShare una empresa de Scribd logo
1 de 28
TDA LISTA
Estructuras de Datos
CCPG1006
TDA
Listas Doblemente Enlazadas
En las listas enlazadas solo se avanza en un sentido
En las dobles, se puede avanzar hacia la derecha o hacia la izq.
En estas listas cada nodo tiene
Un predecesor, excepto el primero
Un sucesor, excepto el último
Cada nodo ya no tiene un solo enlace, tiene dos, hacia el siguiente y hacia el
anterior
TDA
Listas Doblemente Enlazadas
TDA
Listas Doblemente Enlazadas
¿Cuánto tiempo toma acceder a un elemento en la implementación de
LinkedList Doblemente Enlazada (en el peor caso)?
Listas Doblemente Enlazadas
Rendimiento de operaciones
¿Cuánto tiempo toma acceder a un elemento en la implementación de
LinkedList (en el peor caso)?
– El peor de los casos
• Acceder al elemento medio de la lista
• Moverse por a través de O(n/2) referencias desde la cabecera (o desde la cola) de la lista hasta
el elemento que nos interesa
• O(n)
Listas Doblemente Enlazadas
Rendimiento de operaciones
¿Cuánto tiempo toma insertar al inicio un elemento en la implementación de
LinkedList?
Insertar un elemento en la cabecera de una lista enlazada significa
asignar las referencias de manera que el primero elemento pase a ser el
segundo elemento
El número de operaciones es constante y no depende de cuantos
elementos existen en la lista
O(1)
10 5 21 12 17 6
Listas Doblemente Enlazadas
Insertar nodos (inicio o al final)
lastheader
nuevo.next = header
header. previous= nuevoheader
header = nuevo
nuevo
15
nuevo.previous = last
last.next = nuevo
last
last = nuevo
nuevo
15
header
Listas Doblemente Enlazadas
Insertar entre
header last
10 5 21 12 17 6
p
nuevo
15
nuevo.next = p.next;
p.next = nuevo
nuevo.previous = p
nuevo.next.previous = nuevo
10 5 21 12 17 6
header lastp
p.previous.next = p.next;
p.next.previous = p.previous
p.next = p.previous = null;
Listas Doblemente Enlazadas
Eliminar nodos
Sentinelas: Header and Trailer
Listas Circulares
• El avance en las listas enlazadas es
– Solo a la derecha(siguiente)
– Limitado hasta el último nodo
• Hay ocasiones en las que se desearía,
– Poder avanzar ilimitadamente
– Del último nodo, pasar al primero
• last.next = first
10 5 8 2 3125
last.next last
El TDA Listas Circulares
No es necesario mantener un control de:
– Primero y último
– Solo con el último ya se tiene todo, pues el siguiente al último es el
primero
10 5 8 2 3125
last.next last
private static class Node<E> {
private E element;
private Node<E> next;
public Node(E e, Node<E> n) {
element = e;
next = n;
}
public E getElement( ) { return element; }
public Node<E> getNext( ) { return next; }
public void setNext(Node<E> n) { next = n; }
}
Crear nodo
Para crear un nodo válido (como clase privada de la Lista)
Localizar
10 5 8 2 3125
last.next last
Busco 25
p
pp
p
ppp
p
p
10 5 8 2 3125
last.next last
Busco 25
p
pp
Busco 12
p
pppp
p
p p
Localizar
LCENodo buscar(E e){
LCENodo p;
if(this.isEmpty()) return null;
for( p = this.last.next; p != this.last; p = p.next)
{
if(p.data.equals(e))
return p;
}
if(p.data.equals(e))
return p;
return null;
}
Buscar el anterior a un nodo dado
LCENodo getPrevious (LCENodo p){
LCE_Nodo q;
if(this.isEmpty() || p == null)
return null;
q = this.last;
do{
if(q.next.equals(p)) return q;
q = q.next;
}while(q!= this.last);
return null;
}
Anterior
10 5 8 2 3125
last.next last
pp
Insertar inicio fin
boolean insertarNodoInicio( LCENodo nuevo ){
if(nuevo == null) return false;
if(this.isEmpty()) this.last = nuevo;
else{
nuevo.next = this.last.next;
this.last.next = nuevo;
}
return true;
}
boolean insertarNodoFin(LCENodo nuevo){
if(nuevo == null) return false;
if(this.isEmpty()) this.last = nuevo;
else{
nuevo.next = this.last.next;
this.last.next = nuevo;
this.last = nuevo;
}
return true;
}
10 5 8 2 3125
last
nuevo.next = last.next
10
nuevo
last.next= nuevo
last
last = nuevo
boolean insertar(LCENodo p, LCENodo nuevo){
if(p == null ) return false;
if(this.isEmpty() || p==this.last)
insertarNodoFin(nuevo);
else {
nuevo.next = p.next;
p.next = nuevo;
}
return true;
}
Insertar en medio
10 5 8 2 3125
last.next last
pp
Listas circulares doblemente enlazadas (LCDE)
• Es una implementación de listas circulares
– Con nodos que tienen dos punteros
• Así se recorre la lista en el
– Sentido del avance del reloj y
– En sentido contrario
• Seguimos llevando un control solo del último nodo de la lista
10 5 8 25 2 31
last
Recorrer lista
Escribir una operación RecorrerR que recorre una lista Circular
Doblemente Enlazada hacia atrás
void RecorreR(){
LCDENodo pos;
if(this.isEmpty())
return;
pos = this.last;
recorrer = true;
while(recorrer ){
System.out.println(pos.e)
pos = pos.prev;
if(pos == this.last)
recorrer = false;
}
}
10 5 8 25 2 31
last
Listas
10 5 8 2 3125
tail
tailhead
10 5 8 25 2 31
10 5 8 25 2 31
tail
10 5 8 2 3125
tailhead
10 5 8 25 2 31
header trailer
31
Implementación Java
ArrayList:
lista implementada con un Array
• Acceso posicional eficiente
• Inserción y extracción costosas menos en la última posición
que es instantánea
• Cuando se supera el tamaño del array, se crea uno nuevo
más grande y se copian en él los elementos del antiguo
10
0
5
1
8
2
2
3
31
4 5 6 7 8
En uso Desperdicio
25
3
2
4 5 6 7 8
size Capacidad
ensureCapacity
LinkedList:
lista doblemente enlazada
• Acceso posicional costoso
• Inserción y extracción costosas, menos en la primera y
última posición que es inmediato
• Tamaño ilimitado
lastfirst
10 5 8 25 2 31
LinkedList:
lista doblemente enlazada
lastfirst
10 5 8 25 2 31
LinkedList:
métodos principales
add(índice, objeto) Añade un objeto en el índice.
remove(índice) Elimina el elemento que se encuentra en el índice.
set (índice, objeto) cambia el objeto en la posición del índice.
get(índice) Recupera el elemento que se encuentra en el índice.
contains(objeto) Se usa para saber si la lista contiene un objeto
determinado.
indexOf(objeto) Se usa para saber el índice de un objeto determinado.
isEmpty() devuelve true si la lista esta vacía y false si no lo está.
size() devuelve el tamaño de la lista
clear() borra todos los elementos de la lista
LinkedList:
métodos principales
addAll(índice, Colección) Añade una colección en el índice.
removeAll(Colección) Elimina todos los elementos que coinciden
con otra colección .
retainAll(Colección) Mantiene los elementos de la lista presentes
en otra colección.
containsAll(Colección) Se usa para saber si la lista contiene todos los
elementos de otra colección .
Implementar TDA Lista Circular
• Consultar primero, último y tamaño
– E first();
– E last();
– int size();
• Conocer Estado
– bool isEmpty();
• Añadir y Remover
– void addFirst(E e);
– void addLast(E e);
– bool add(int i, E e);
– E removeFirst();
– E removeLast();
• Búsqueda
– int indexOf(E e);
– bool contains (E e);

Más contenido relacionado

La actualidad más candente

Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datosmariajuly
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicasPatriciaU
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadasguestbd36f7
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasJose R. Trejo
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337CJrosario2
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasElbery
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Edward Mejia Gomez
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Método de ordenamiento shell
Método de ordenamiento shellMétodo de ordenamiento shell
Método de ordenamiento shellkikecarvajalino
 
LISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADASLISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADASHEIVER CUESTA
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasrehoscript
 

La actualidad más candente (19)

Estructura de Datos (LISTAS, COLAS, PILAS)
Estructura de Datos (LISTAS, COLAS, PILAS)Estructura de Datos (LISTAS, COLAS, PILAS)
Estructura de Datos (LISTAS, COLAS, PILAS)
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Ordenamiento shell
Ordenamiento shellOrdenamiento shell
Ordenamiento shell
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
Lista simple
Lista simpleLista simple
Lista simple
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Método de ordenamiento shell
Método de ordenamiento shellMétodo de ordenamiento shell
Método de ordenamiento shell
 
COLAS
COLASCOLAS
COLAS
 
LISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADASLISTAS DOBLEMENTE ENCADENADAS
LISTAS DOBLEMENTE ENCADENADAS
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
 

Similar a 06 listas1 t2018

Similar a 06 listas1 t2018 (20)

05 listas1 t2018
05 listas1 t201805 listas1 t2018
05 listas1 t2018
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte
 
Sesion_09.pptx
Sesion_09.pptxSesion_09.pptx
Sesion_09.pptx
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
LISTAS ESPECIALES
LISTAS ESPECIALESLISTAS ESPECIALES
LISTAS ESPECIALES
 
Presentacion Lista, Cola y Pila
Presentacion Lista, Cola y PilaPresentacion Lista, Cola y Pila
Presentacion Lista, Cola y Pila
 
20152 sfiec030121 1
20152 sfiec030121 120152 sfiec030121 1
20152 sfiec030121 1
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Listas encadenadas
Listas encadenadas Listas encadenadas
Listas encadenadas
 
Lista enlazada
Lista enlazadaLista enlazada
Lista enlazada
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
ED 03 1_listas
ED 03 1_listasED 03 1_listas
ED 03 1_listas
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Listas c#
Listas c#Listas c#
Listas c#
 
S6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colasS6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colas
 
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
 

Más de Cindy Adriana Bohórquez Santana

265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...Cindy Adriana Bohórquez Santana
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLCindy Adriana Bohórquez Santana
 

Más de Cindy Adriana Bohórquez Santana (20)

Proyecto parcial1t2018
Proyecto parcial1t2018Proyecto parcial1t2018
Proyecto parcial1t2018
 
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
 
4 estructuras enlazadas
4 estructuras enlazadas4 estructuras enlazadas
4 estructuras enlazadas
 
12 conjuntos mapas1t2018
12 conjuntos mapas1t201812 conjuntos mapas1t2018
12 conjuntos mapas1t2018
 
11 colas prioridad1t2018
11 colas prioridad1t201811 colas prioridad1t2018
11 colas prioridad1t2018
 
10 colas1 t2018
10 colas1 t201810 colas1 t2018
10 colas1 t2018
 
09 pilas aplicaciones1t2018
09 pilas aplicaciones1t201809 pilas aplicaciones1t2018
09 pilas aplicaciones1t2018
 
08 pilas1 t2018
08 pilas1 t201808 pilas1 t2018
08 pilas1 t2018
 
04 recursividad1 t2018
04 recursividad1 t201804 recursividad1 t2018
04 recursividad1 t2018
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOSUnidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Teoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_edTeoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_ed
 
Tema3 probabilidades
Tema3 probabilidadesTema3 probabilidades
Tema3 probabilidades
 
Ejercicios calculo probabilidades
Ejercicios calculo probabilidadesEjercicios calculo probabilidades
Ejercicios calculo probabilidades
 
5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)
 

Último

Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...RichardRivas28
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 

Último (20)

Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 

06 listas1 t2018

  • 1. TDA LISTA Estructuras de Datos CCPG1006
  • 2. TDA Listas Doblemente Enlazadas En las listas enlazadas solo se avanza en un sentido En las dobles, se puede avanzar hacia la derecha o hacia la izq. En estas listas cada nodo tiene Un predecesor, excepto el primero Un sucesor, excepto el último Cada nodo ya no tiene un solo enlace, tiene dos, hacia el siguiente y hacia el anterior
  • 4. TDA Listas Doblemente Enlazadas ¿Cuánto tiempo toma acceder a un elemento en la implementación de LinkedList Doblemente Enlazada (en el peor caso)?
  • 5. Listas Doblemente Enlazadas Rendimiento de operaciones ¿Cuánto tiempo toma acceder a un elemento en la implementación de LinkedList (en el peor caso)? – El peor de los casos • Acceder al elemento medio de la lista • Moverse por a través de O(n/2) referencias desde la cabecera (o desde la cola) de la lista hasta el elemento que nos interesa • O(n)
  • 6. Listas Doblemente Enlazadas Rendimiento de operaciones ¿Cuánto tiempo toma insertar al inicio un elemento en la implementación de LinkedList? Insertar un elemento en la cabecera de una lista enlazada significa asignar las referencias de manera que el primero elemento pase a ser el segundo elemento El número de operaciones es constante y no depende de cuantos elementos existen en la lista O(1)
  • 7. 10 5 21 12 17 6 Listas Doblemente Enlazadas Insertar nodos (inicio o al final) lastheader nuevo.next = header header. previous= nuevoheader header = nuevo nuevo 15 nuevo.previous = last last.next = nuevo last last = nuevo nuevo 15 header
  • 8. Listas Doblemente Enlazadas Insertar entre header last 10 5 21 12 17 6 p nuevo 15 nuevo.next = p.next; p.next = nuevo nuevo.previous = p nuevo.next.previous = nuevo
  • 9. 10 5 21 12 17 6 header lastp p.previous.next = p.next; p.next.previous = p.previous p.next = p.previous = null; Listas Doblemente Enlazadas Eliminar nodos
  • 11. Listas Circulares • El avance en las listas enlazadas es – Solo a la derecha(siguiente) – Limitado hasta el último nodo • Hay ocasiones en las que se desearía, – Poder avanzar ilimitadamente – Del último nodo, pasar al primero • last.next = first 10 5 8 2 3125 last.next last
  • 12. El TDA Listas Circulares No es necesario mantener un control de: – Primero y último – Solo con el último ya se tiene todo, pues el siguiente al último es el primero 10 5 8 2 3125 last.next last
  • 13. private static class Node<E> { private E element; private Node<E> next; public Node(E e, Node<E> n) { element = e; next = n; } public E getElement( ) { return element; } public Node<E> getNext( ) { return next; } public void setNext(Node<E> n) { next = n; } } Crear nodo Para crear un nodo válido (como clase privada de la Lista)
  • 14. Localizar 10 5 8 2 3125 last.next last Busco 25 p pp p ppp p p
  • 15. 10 5 8 2 3125 last.next last Busco 25 p pp Busco 12 p pppp p p p Localizar LCENodo buscar(E e){ LCENodo p; if(this.isEmpty()) return null; for( p = this.last.next; p != this.last; p = p.next) { if(p.data.equals(e)) return p; } if(p.data.equals(e)) return p; return null; }
  • 16. Buscar el anterior a un nodo dado LCENodo getPrevious (LCENodo p){ LCE_Nodo q; if(this.isEmpty() || p == null) return null; q = this.last; do{ if(q.next.equals(p)) return q; q = q.next; }while(q!= this.last); return null; } Anterior 10 5 8 2 3125 last.next last pp
  • 17. Insertar inicio fin boolean insertarNodoInicio( LCENodo nuevo ){ if(nuevo == null) return false; if(this.isEmpty()) this.last = nuevo; else{ nuevo.next = this.last.next; this.last.next = nuevo; } return true; } boolean insertarNodoFin(LCENodo nuevo){ if(nuevo == null) return false; if(this.isEmpty()) this.last = nuevo; else{ nuevo.next = this.last.next; this.last.next = nuevo; this.last = nuevo; } return true; } 10 5 8 2 3125 last nuevo.next = last.next 10 nuevo last.next= nuevo last last = nuevo
  • 18. boolean insertar(LCENodo p, LCENodo nuevo){ if(p == null ) return false; if(this.isEmpty() || p==this.last) insertarNodoFin(nuevo); else { nuevo.next = p.next; p.next = nuevo; } return true; } Insertar en medio 10 5 8 2 3125 last.next last pp
  • 19. Listas circulares doblemente enlazadas (LCDE) • Es una implementación de listas circulares – Con nodos que tienen dos punteros • Así se recorre la lista en el – Sentido del avance del reloj y – En sentido contrario • Seguimos llevando un control solo del último nodo de la lista 10 5 8 25 2 31 last
  • 20. Recorrer lista Escribir una operación RecorrerR que recorre una lista Circular Doblemente Enlazada hacia atrás void RecorreR(){ LCDENodo pos; if(this.isEmpty()) return; pos = this.last; recorrer = true; while(recorrer ){ System.out.println(pos.e) pos = pos.prev; if(pos == this.last) recorrer = false; } } 10 5 8 25 2 31 last
  • 21. Listas 10 5 8 2 3125 tail tailhead 10 5 8 25 2 31 10 5 8 25 2 31 tail 10 5 8 2 3125 tailhead 10 5 8 25 2 31 header trailer 31
  • 23. ArrayList: lista implementada con un Array • Acceso posicional eficiente • Inserción y extracción costosas menos en la última posición que es instantánea • Cuando se supera el tamaño del array, se crea uno nuevo más grande y se copian en él los elementos del antiguo 10 0 5 1 8 2 2 3 31 4 5 6 7 8 En uso Desperdicio 25 3 2 4 5 6 7 8 size Capacidad ensureCapacity
  • 24. LinkedList: lista doblemente enlazada • Acceso posicional costoso • Inserción y extracción costosas, menos en la primera y última posición que es inmediato • Tamaño ilimitado lastfirst 10 5 8 25 2 31
  • 26. LinkedList: métodos principales add(índice, objeto) Añade un objeto en el índice. remove(índice) Elimina el elemento que se encuentra en el índice. set (índice, objeto) cambia el objeto en la posición del índice. get(índice) Recupera el elemento que se encuentra en el índice. contains(objeto) Se usa para saber si la lista contiene un objeto determinado. indexOf(objeto) Se usa para saber el índice de un objeto determinado. isEmpty() devuelve true si la lista esta vacía y false si no lo está. size() devuelve el tamaño de la lista clear() borra todos los elementos de la lista
  • 27. LinkedList: métodos principales addAll(índice, Colección) Añade una colección en el índice. removeAll(Colección) Elimina todos los elementos que coinciden con otra colección . retainAll(Colección) Mantiene los elementos de la lista presentes en otra colección. containsAll(Colección) Se usa para saber si la lista contiene todos los elementos de otra colección .
  • 28. Implementar TDA Lista Circular • Consultar primero, último y tamaño – E first(); – E last(); – int size(); • Conocer Estado – bool isEmpty(); • Añadir y Remover – void addFirst(E e); – void addLast(E e); – bool add(int i, E e); – E removeFirst(); – E removeLast(); • Búsqueda – int indexOf(E e); – bool contains (E e);