SlideShare una empresa de Scribd logo
1 de 51
1
Listas
Dinámicas
Ingeniería De Software
Ing. Alberto Moreno C.
2
Listas
 Listas  Arrays
 Listas son flexibles y permiten cambio de
implementación
 Operaciones
 Insertar, Borrar, Modificar, etc.
 Tipos de listas
 Simples
 Ordenadas
 Pilas
 Colas
 Doblemente enlazadas (LDE)
 Circulares
3
TAD Lista Simple: operaciones
Creación de una lista crearLista (nombreLista)
Comprobación del estado listaLlena (nombreLista)  Booleano listaVacia(nombreLista) 
Booleano
listaVacia (referenciaNodo)  Booleano
Inserción de nodos Insertar (nombreLista, valorInfo, posicion)
Insertar (nombreLista, valorInfo)
Borrado de nodos Borrar (nombreLista, valorInfo)
Búsqueda de un nodo Buscar (nombreLista, dato)  informacion
Buscar (nombreLista, dato)  referenciaNodo
Pertenece (nombreLista,informacion)  Booleano
Recorrido de la lista recorrer(nombreLista)
Acceso a los nodos Info (referenciaNodo)  Informacion
Siguiente (referenciaNodo)  enlace
Modificación de los nodos asignarInfo (referenciaNodo, valorInformacion)
asignarEnlace (referenciaNodo, valorEnlace)
4
Definición de la lista
 Se compone de nodos enlazados.
 Se debe hacer en una clase separada.
 Sólo requiere conocer dónde se encuentra el primer nodo de
la lista.
 Para el nombre de la referencia al primer nodo se hace uso
de la metáfora: “cabeza de la lista” o “inicio”.
 Una lista vacía comenzaría con un valor null en el campo sig
(siguiente)
5
¿Qué es un Nodo?
 Un nodo es un registro con varios campos: unos
campos de datos y un campo apuntador. Los primeros
son información y el último es una referencia al
siguiente nodo de la lista. El último nodo de la lista
contiene una referencia siguiente "null".
6
Clase nodo
public class Nodo {
int data; // almacena el dato
Nodo sig; //”liga” al próximo nodo
}
El campo data representa los datos que
almacena el nodo. Puede ser de diferentes
tipos de datos, además que éste puede
contener la cantidad de datos que se
ocupen.
7
Listas
sig sig sig
8
Creación de una lista
 Lista vacía
9
Inserción de un nodo
CASO 1. Inserción al principio de la lista
10
Caso 1. Inserción al principio
Insertarinicio (inicio, info)
//este algoritmo inserta un nodo al
inicio de la lista//
(nuevo: del tipo inicio)
1- crear (nuevo);
2- hacer
nuevo.dato = info
nuevo.sig = inicio
inicio = nuevo
11
Caso 2. Inserción en medio de la lista
Caso 2.1 Insertar antes de
Caso 2.2 Insertar después de
info
Ref
nuevo
inicio aux
12
Caso 2.1 Insertar antes de
InsertAntes (inicio, info, ref)
//aux,nuevo,T son variables de tipo inicio. OK es una variable
boolean
1- hacer aux = inicio, Ok = verdadero
2- mientras (aux.dato != ref) y (Ok == verdadero)
Si aux.sig != null
T = aux, aux = aux.sig.
Sino OK = falso
3- Si Ok = = verdadero //se encontró el dato
Crear (nuevo)
nuevo.dato = info
nuevo.sig =aux
Si aux = = inicio //es el primer nodo
entonces inicio = nuevo
si no T.sig = nuevo
13
Caso 2.2 InsertDespues
InsertDespues (inicio, info, Ref)
//nuevo y aux so n variables del tipo de inicio, OK es boolean
1- aux = inicio, OK = verdadero
2- Mientras (aux.dato != ref) y (OK == verdadero) hacer
si aux.sig != null
entonces aux = aux.sig
si no OK = Falso
3- Si OK = = verdadero
entonces crear (nuevo)
nuevo.dato = info
nuevo.sig = aux.sig
aux.sig = nuevo
14
Caso 3. Inserción al final de la lista
Insertafinal (inicio, info)
// nuevo y T son del tipo inicio
1- Hacer T = inicio
2- mientras T.sig != null
recorrer la lista hasta llegar al final
3- Crear (nuevo)
4- nuevo.dato = info
nuevo.sig = null
T.sig = nuevo
15
Eliminar Nodos
Casos 1 Eliminar el primer nodo
Elimina primero (inicio)
// Se redefine el apuntador inicio.
//aux es del tipo inicio
1- hacer Q = inicio;
2- Si aux.sig != null
//que si hay mas de un elemento
Entonces
inicio = aux.sig
Sino inicio = null
3- aux = null //quita aux
16
Caso 2 Eliminar en medio
Caso 2.1 Elimina nodo con X información
EliminaNodoX (inicio, x)
//aux y T son variables del mismo tipo de inicio, Ok es boolean
1- Hacer aux = inicio , Ok = verdadero
2- Repetir mientras (aux.dato != x) y (Ok) hacer
Si aux.sig != null //hay más nodos
entonces T = aux, aux = aux.sig
si no Ok = falso
3- Si Ok == falso
entonces //el elemento x no existe
si no si inicio == aux //x es el primer elemento de la lista
entonces inicio = aux.sig
si no T.sig = aux.sig
aux = null
17
Caso 2.2 Elimina nodo antes de X información
Algoritmo EliminaAntesX (inicio, x)
//aux , T y R son variables del mismo tipo de inicio (apuntador), Ok es
boolean
1- Si inicio.dato == x
entonces //no hay nodo que precede a x
sino aux = inicio; T = inicio; Ok = falso;
mientras (( aux.info!=x) y (!Ok))
si aux.sig != null
entonces R = T; T = aux;
aux= aux.sig;
si no Ok = verdadero;
2- Si Ok
entonces //el elemento x no existe
si no si inicio.sig = aux
//el elemento a eliminar es el primero
entonces inicio = aux
sino R.sig = aux; T = null;
X
inicio
R T aux
18
Caso 3 Elimina ultimo nodo
Elimina ultimo (inicio)
//Se pone un null en el campo sig del penúltimo elemento y se
quita el ultimo.
//aux, T son del mimo tipo que inicio
1. Si inicio.sig == null //que la lista tiene un solo elemento
Entonces
inicio = null //quita (inicio)
Si no aux = inicio
2. Mientras aux.sig != null hacer
T = aux
aux = aux.sig
3. T.sig = null //quita T
aux = null //quita aux
19
Recorrido de una lista dinámica
Metodo Correlista (Nodo inicio);
//imprime cada dato de la lista
{
nodo aux = new nodo();
aux = inicio;
while (aux.sig != null)
{
escribir (aux.dato);
aux = aux.sig;
}
}
20
Buscar un nodo con alguna característica
Método Busca (Nodo inicio, info){
//Devuelve exito con falso o verdadero
nodo aux = new nodo();
boolean exito = falso
aux = inicio;
while (aux.sig != null && aux.dato != info)
aux = aux.sig;
if ( aux.dato = = info ) exito = verdadero;
return exito
}
21
Filas
Dinámicas
22
Características de una Fila
 El primer elemento en llegar es el primero en servir
(FIFO Frist In Frist Out).
 El ultimo en llegar se agrega al final
 El apuntador posee la dirección del siguiente nodo
 El apuntador puede ser null o puede apuntar al
siguiente nodo
 Esta estructura se utiliza en :
 Simulaciones
 Sistemas operativos etc…
sig
dato sig
dato sig
dato sig
dato …
23
Operaciones de una Fila
 Crearfila (nodo inicio)
 Agregarfila (nodo inicio, int dato)
 QuitarFila (nodo inicio)
 Vacio (nodo inicio)
24
Clase nodo
public class Nodo {
int dato; // almacena el dato
Nodo sig; //”liga” al próximo nodo
}
El campo data representa los datos que
almacena el nodo. Puede ser de diferentes
tipos de datos, además que éste puede
contener la cantidad de datos que se
ocupen.
25
Crea fila
creaFila (nodo i){
nodo inicio = new nodo();
inicio = i;
}
sig
incio
26
Agregar a una Fila un nodo
Agrega(nodo inicio, int dato){
Si inicio.sig = null
entonces inicio.sig = nuevo;
Sino { nodo p = nuevo nodo();
p.sig = inicio.sig
mientas(p.sig!= null)
p = p.sig;}
}
sig
incio sig
dato null
27
Eliminar un elemento de la Fila
int quitar(nodo inicio){
int d = -1;
Si inicio.sig == null;
regresa d;
Sino {
d = inicio.sig.dato;
inicio.sig = inicio.sis.sig;
}
Regresa d;
}
null
sig
incio sig
dato sig
dato sig
dato
28
Vaciar una fila
Boolean vacia(nodo inicio){
Boolean vacia = false;
Si inicio = null
Regresa true
Sino
Regresa vacia
}
sig
incio sig
dato sig
dato sig
dato
null
29
Pilas
Dinámicas
30
Características
 Se remueve del tope y se agrega en el tope de
la pila (LIFO Last In Frist Out).
Operaciones
Creapila (nodo inicio)
Quitar (nodo inicio) = pop
Agregar (nodo inicio, int dato) = push
Vacia (nodo inicio)
31
Crear una Pila
creaPila (nodo i){
Nodo inicio = new nodo();
inicio = i
}
sig
incio null
32
Agregar un nodo a la Pila (push)
agregaNodo (nodo inicio, int dato){
nodo nuevo = new nodo()
nuevo.dato = info
nuevo.sig = inicio.sig;
inicio.sig = nuevo
}
sig
incio sig
dato sig
dato sig
dato null
nuevo
33
Quitar elemento de la Pila (pop)
int pop (nodo inicio){
int d = -1;
Si inicio.sig == null;
regresa d;
Sino {
d = inicio.sig.dato;
inicio.sig = inicio.sis.sig;
}
Regresa d;
}
sig
incio sig
dato sig
dato sig
dato
34
Para verificar si un apila esta vacía
Boolean vacia(nodo inicio){
Boolean vacia = false;
Si inicio != null
Regresa true
Sino
Regresa vacia
}
sig
incio sig
dato sig
dato sig
dato
35
Lista doblemente
enlazada
36
Nodo
public class Nodo {
private int data; // al macena el dato
private Nodo sig; //”liga” al próximo nodo
private Nodo ant; // ”liga” al anterior nodo
}
ant sig
37
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.
Inicio fin
sig
ant
38
Añadir elemento a una lista vacía
1-nodo = anterior y nodo=siguiente a NULL.
39
Caso 1 Insertar nodo en la primera posición
insertaNodo( nodo)
1-. Nodo=siguiente // debe apuntar a Lista.
2-. Nodo=anterior y Lista=anterior.
3-. Lista=anterior //debe apuntar a nodo.
Insertar nuevo nodo
Nuevo
nodo
1
…
3
2
null
Dato Dato Dato
40
Caso 2 Insertar un elemento en la última posición
InsertarUltimo(nodo)
1-. Nodo=siguiente y Lista=siguiente (NULL).
2-. Lista=siguiente // debe apuntar a nodo.
3-. Nodo=anterior //apuntará a Lista.
Dato Dato Dato
Dato
null
2
3
1
41
Caso 3 Insertar un nodo en medio.
InsertarMedio (nodo )
1-. Nodo=siguiente apunte a lista=siguiente.
2-. Lista=siguiente //apunte a nodo.
3-. Nodo=anterior //apunte a lista.
4-. Nodo=siguiente=anterior // apunte a nodo.
Dato Dato Dato
Dato
null
2
3
1
4
42
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.
43
Caso 2
Caso 2.1Eliminar el primer nodo
eliminaPrimer( nodo)
1-. Si nodo apunta a Lista // hacemos que Lista apunt
Lista=siguiente.
2-. Hacemos que nodo=siguiente=anterior// apunte a
NULL
3-. Borramos el nodo apuntado por nodo.
44
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
45
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.
46
Lista
Circular
47
Circular
 Una lista circular es una lista lineal en la
que el último nodo a punta al primero.
inicio
fin
48
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
49
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.
50
 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.
Eliminar un elemento de la lista
51
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.

Más contenido relacionado

Similar a 135042409-Estructuras-dinamicas-ppt.pptx

Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Partecarpio
 
Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617Johannadotel
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Colaguest39b2f2
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Colaguest39b2f2
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datosmariajuly
 
Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcialCerdorock
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a ParteUVM
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datoscharlezgt
 
Jyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc X
 
Informe declaracion de listas David Ratmiroff.pdf
Informe declaracion de listas David Ratmiroff.pdfInforme declaracion de listas David Ratmiroff.pdf
Informe declaracion de listas David Ratmiroff.pdfYuriratmiroff
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasElbery
 
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.pptxRafael nin
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130reyarturo16
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 

Similar a 135042409-Estructuras-dinamicas-ppt.pptx (20)

Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617Estructura dedatos listas pilas y colas 12-0617
Estructura dedatos listas pilas y colas 12-0617
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
Teoria de listas
Teoria de listasTeoria de listas
Teoria de listas
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcial
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Jyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilas
 
Informe declaracion de listas David Ratmiroff.pdf
Informe declaracion de listas David Ratmiroff.pdfInforme declaracion de listas David Ratmiroff.pdf
Informe declaracion de listas David Ratmiroff.pdf
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, 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
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Listas
ListasListas
Listas
 

Último

HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...israel garcia
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfEDUARDO MAMANI MAMANI
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalIngrid459352
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria deCalet Cáceres Vergara
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfRodrigoBenitez38
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaSilvia García
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfJC Díaz Herrera
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 

Último (20)

HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dental
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria de
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y química
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 

135042409-Estructuras-dinamicas-ppt.pptx

  • 2. 2 Listas  Listas  Arrays  Listas son flexibles y permiten cambio de implementación  Operaciones  Insertar, Borrar, Modificar, etc.  Tipos de listas  Simples  Ordenadas  Pilas  Colas  Doblemente enlazadas (LDE)  Circulares
  • 3. 3 TAD Lista Simple: operaciones Creación de una lista crearLista (nombreLista) Comprobación del estado listaLlena (nombreLista)  Booleano listaVacia(nombreLista)  Booleano listaVacia (referenciaNodo)  Booleano Inserción de nodos Insertar (nombreLista, valorInfo, posicion) Insertar (nombreLista, valorInfo) Borrado de nodos Borrar (nombreLista, valorInfo) Búsqueda de un nodo Buscar (nombreLista, dato)  informacion Buscar (nombreLista, dato)  referenciaNodo Pertenece (nombreLista,informacion)  Booleano Recorrido de la lista recorrer(nombreLista) Acceso a los nodos Info (referenciaNodo)  Informacion Siguiente (referenciaNodo)  enlace Modificación de los nodos asignarInfo (referenciaNodo, valorInformacion) asignarEnlace (referenciaNodo, valorEnlace)
  • 4. 4 Definición de la lista  Se compone de nodos enlazados.  Se debe hacer en una clase separada.  Sólo requiere conocer dónde se encuentra el primer nodo de la lista.  Para el nombre de la referencia al primer nodo se hace uso de la metáfora: “cabeza de la lista” o “inicio”.  Una lista vacía comenzaría con un valor null en el campo sig (siguiente)
  • 5. 5 ¿Qué es un Nodo?  Un nodo es un registro con varios campos: unos campos de datos y un campo apuntador. Los primeros son información y el último es una referencia al siguiente nodo de la lista. El último nodo de la lista contiene una referencia siguiente "null".
  • 6. 6 Clase nodo public class Nodo { int data; // almacena el dato Nodo sig; //”liga” al próximo nodo } El campo data representa los datos que almacena el nodo. Puede ser de diferentes tipos de datos, además que éste puede contener la cantidad de datos que se ocupen.
  • 8. 8 Creación de una lista  Lista vacía
  • 9. 9 Inserción de un nodo CASO 1. Inserción al principio de la lista
  • 10. 10 Caso 1. Inserción al principio Insertarinicio (inicio, info) //este algoritmo inserta un nodo al inicio de la lista// (nuevo: del tipo inicio) 1- crear (nuevo); 2- hacer nuevo.dato = info nuevo.sig = inicio inicio = nuevo
  • 11. 11 Caso 2. Inserción en medio de la lista Caso 2.1 Insertar antes de Caso 2.2 Insertar después de info Ref nuevo inicio aux
  • 12. 12 Caso 2.1 Insertar antes de InsertAntes (inicio, info, ref) //aux,nuevo,T son variables de tipo inicio. OK es una variable boolean 1- hacer aux = inicio, Ok = verdadero 2- mientras (aux.dato != ref) y (Ok == verdadero) Si aux.sig != null T = aux, aux = aux.sig. Sino OK = falso 3- Si Ok = = verdadero //se encontró el dato Crear (nuevo) nuevo.dato = info nuevo.sig =aux Si aux = = inicio //es el primer nodo entonces inicio = nuevo si no T.sig = nuevo
  • 13. 13 Caso 2.2 InsertDespues InsertDespues (inicio, info, Ref) //nuevo y aux so n variables del tipo de inicio, OK es boolean 1- aux = inicio, OK = verdadero 2- Mientras (aux.dato != ref) y (OK == verdadero) hacer si aux.sig != null entonces aux = aux.sig si no OK = Falso 3- Si OK = = verdadero entonces crear (nuevo) nuevo.dato = info nuevo.sig = aux.sig aux.sig = nuevo
  • 14. 14 Caso 3. Inserción al final de la lista Insertafinal (inicio, info) // nuevo y T son del tipo inicio 1- Hacer T = inicio 2- mientras T.sig != null recorrer la lista hasta llegar al final 3- Crear (nuevo) 4- nuevo.dato = info nuevo.sig = null T.sig = nuevo
  • 15. 15 Eliminar Nodos Casos 1 Eliminar el primer nodo Elimina primero (inicio) // Se redefine el apuntador inicio. //aux es del tipo inicio 1- hacer Q = inicio; 2- Si aux.sig != null //que si hay mas de un elemento Entonces inicio = aux.sig Sino inicio = null 3- aux = null //quita aux
  • 16. 16 Caso 2 Eliminar en medio Caso 2.1 Elimina nodo con X información EliminaNodoX (inicio, x) //aux y T son variables del mismo tipo de inicio, Ok es boolean 1- Hacer aux = inicio , Ok = verdadero 2- Repetir mientras (aux.dato != x) y (Ok) hacer Si aux.sig != null //hay más nodos entonces T = aux, aux = aux.sig si no Ok = falso 3- Si Ok == falso entonces //el elemento x no existe si no si inicio == aux //x es el primer elemento de la lista entonces inicio = aux.sig si no T.sig = aux.sig aux = null
  • 17. 17 Caso 2.2 Elimina nodo antes de X información Algoritmo EliminaAntesX (inicio, x) //aux , T y R son variables del mismo tipo de inicio (apuntador), Ok es boolean 1- Si inicio.dato == x entonces //no hay nodo que precede a x sino aux = inicio; T = inicio; Ok = falso; mientras (( aux.info!=x) y (!Ok)) si aux.sig != null entonces R = T; T = aux; aux= aux.sig; si no Ok = verdadero; 2- Si Ok entonces //el elemento x no existe si no si inicio.sig = aux //el elemento a eliminar es el primero entonces inicio = aux sino R.sig = aux; T = null; X inicio R T aux
  • 18. 18 Caso 3 Elimina ultimo nodo Elimina ultimo (inicio) //Se pone un null en el campo sig del penúltimo elemento y se quita el ultimo. //aux, T son del mimo tipo que inicio 1. Si inicio.sig == null //que la lista tiene un solo elemento Entonces inicio = null //quita (inicio) Si no aux = inicio 2. Mientras aux.sig != null hacer T = aux aux = aux.sig 3. T.sig = null //quita T aux = null //quita aux
  • 19. 19 Recorrido de una lista dinámica Metodo Correlista (Nodo inicio); //imprime cada dato de la lista { nodo aux = new nodo(); aux = inicio; while (aux.sig != null) { escribir (aux.dato); aux = aux.sig; } }
  • 20. 20 Buscar un nodo con alguna característica Método Busca (Nodo inicio, info){ //Devuelve exito con falso o verdadero nodo aux = new nodo(); boolean exito = falso aux = inicio; while (aux.sig != null && aux.dato != info) aux = aux.sig; if ( aux.dato = = info ) exito = verdadero; return exito }
  • 22. 22 Características de una Fila  El primer elemento en llegar es el primero en servir (FIFO Frist In Frist Out).  El ultimo en llegar se agrega al final  El apuntador posee la dirección del siguiente nodo  El apuntador puede ser null o puede apuntar al siguiente nodo  Esta estructura se utiliza en :  Simulaciones  Sistemas operativos etc… sig dato sig dato sig dato sig dato …
  • 23. 23 Operaciones de una Fila  Crearfila (nodo inicio)  Agregarfila (nodo inicio, int dato)  QuitarFila (nodo inicio)  Vacio (nodo inicio)
  • 24. 24 Clase nodo public class Nodo { int dato; // almacena el dato Nodo sig; //”liga” al próximo nodo } El campo data representa los datos que almacena el nodo. Puede ser de diferentes tipos de datos, además que éste puede contener la cantidad de datos que se ocupen.
  • 25. 25 Crea fila creaFila (nodo i){ nodo inicio = new nodo(); inicio = i; } sig incio
  • 26. 26 Agregar a una Fila un nodo Agrega(nodo inicio, int dato){ Si inicio.sig = null entonces inicio.sig = nuevo; Sino { nodo p = nuevo nodo(); p.sig = inicio.sig mientas(p.sig!= null) p = p.sig;} } sig incio sig dato null
  • 27. 27 Eliminar un elemento de la Fila int quitar(nodo inicio){ int d = -1; Si inicio.sig == null; regresa d; Sino { d = inicio.sig.dato; inicio.sig = inicio.sis.sig; } Regresa d; } null sig incio sig dato sig dato sig dato
  • 28. 28 Vaciar una fila Boolean vacia(nodo inicio){ Boolean vacia = false; Si inicio = null Regresa true Sino Regresa vacia } sig incio sig dato sig dato sig dato null
  • 30. 30 Características  Se remueve del tope y se agrega en el tope de la pila (LIFO Last In Frist Out). Operaciones Creapila (nodo inicio) Quitar (nodo inicio) = pop Agregar (nodo inicio, int dato) = push Vacia (nodo inicio)
  • 31. 31 Crear una Pila creaPila (nodo i){ Nodo inicio = new nodo(); inicio = i } sig incio null
  • 32. 32 Agregar un nodo a la Pila (push) agregaNodo (nodo inicio, int dato){ nodo nuevo = new nodo() nuevo.dato = info nuevo.sig = inicio.sig; inicio.sig = nuevo } sig incio sig dato sig dato sig dato null nuevo
  • 33. 33 Quitar elemento de la Pila (pop) int pop (nodo inicio){ int d = -1; Si inicio.sig == null; regresa d; Sino { d = inicio.sig.dato; inicio.sig = inicio.sis.sig; } Regresa d; } sig incio sig dato sig dato sig dato
  • 34. 34 Para verificar si un apila esta vacía Boolean vacia(nodo inicio){ Boolean vacia = false; Si inicio != null Regresa true Sino Regresa vacia } sig incio sig dato sig dato sig dato
  • 36. 36 Nodo public class Nodo { private int data; // al macena el dato private Nodo sig; //”liga” al próximo nodo private Nodo ant; // ”liga” al anterior nodo } ant sig
  • 37. 37 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. Inicio fin sig ant
  • 38. 38 Añadir elemento a una lista vacía 1-nodo = anterior y nodo=siguiente a NULL.
  • 39. 39 Caso 1 Insertar nodo en la primera posición insertaNodo( nodo) 1-. Nodo=siguiente // debe apuntar a Lista. 2-. Nodo=anterior y Lista=anterior. 3-. Lista=anterior //debe apuntar a nodo. Insertar nuevo nodo Nuevo nodo 1 … 3 2 null Dato Dato Dato
  • 40. 40 Caso 2 Insertar un elemento en la última posición InsertarUltimo(nodo) 1-. Nodo=siguiente y Lista=siguiente (NULL). 2-. Lista=siguiente // debe apuntar a nodo. 3-. Nodo=anterior //apuntará a Lista. Dato Dato Dato Dato null 2 3 1
  • 41. 41 Caso 3 Insertar un nodo en medio. InsertarMedio (nodo ) 1-. Nodo=siguiente apunte a lista=siguiente. 2-. Lista=siguiente //apunte a nodo. 3-. Nodo=anterior //apunte a lista. 4-. Nodo=siguiente=anterior // apunte a nodo. Dato Dato Dato Dato null 2 3 1 4
  • 42. 42 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.
  • 43. 43 Caso 2 Caso 2.1Eliminar el primer nodo eliminaPrimer( nodo) 1-. Si nodo apunta a Lista // hacemos que Lista apunt Lista=siguiente. 2-. Hacemos que nodo=siguiente=anterior// apunte a NULL 3-. Borramos el nodo apuntado por nodo.
  • 44. 44 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
  • 45. 45 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.
  • 47. 47 Circular  Una lista circular es una lista lineal en la que el último nodo a punta al primero. inicio fin
  • 48. 48 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
  • 49. 49 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.
  • 50. 50  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. Eliminar un elemento de la lista
  • 51. 51 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.