SlideShare una empresa de Scribd logo
1 de 51
Listas
Dinámicas
1
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
 Circulares

enlazadas (LDE)
2
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

Recorrido de la lista

Pertenece (nombreLista,informacion) → Booleano
recorrer(nombreLista)

Acceso a los nodos

Info (referenciaNodo) → Informacion

Modificación de los nodos

Siguiente (referenciaNodo) → enlace
asignarInfo (referenciaNodo, valorInformacion)
asignarEnlace (referenciaNodo, valorEnlace)
3
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)

4
¿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".

5
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.
6
Listas

sig

sig

sig

7
Creación de una lista


Lista vacía

8
Inserción de un nodo
CASO 1. Inserción al principio de la lista

9
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
10
Caso 2.

Inserción en medio de la lista

Caso 2.1 Insertar antes de

Caso 2.2 Insertar después de

inicio

aux
Ref

nuevo

info
11
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
12
si no
T.sig = nuevo
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
13
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
14
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

15
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
16
Caso 2.2 Elimina nodo antes de X información
inicio

R

T

aux
X

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
17
sino R.sig = aux; T = null;
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
18
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;
}
}
19
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
}
20
Filas
Dinámicas
21
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…
dato sig

dato sig

dato sig

dato sig
22

…
Operaciones de una Fila

Crearfila (nodo inicio)
 Agregarfila (nodo inicio, int dato)
 QuitarFila (nodo inicio)
 Vacio (nodo inicio)


23
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.
24
Crea fila
creaFila (nodo i){
nodo inicio = new nodo();
inicio = i;
}
incio sig

25
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;}
}
incio sig

dato sig

null
26
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;
}
incio sig

dato sig

dato sig

null

dato sig
27
Vaciar una fila
Boolean vacia(nodo inicio){
Boolean vacia = false;
Si inicio = null
Regresa true

Sino
Regresa vacia

}

null
incio sig

dato sig

dato sig

dato sig
28
Pilas
Dinámicas
29
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)
30
Crear una Pila
creaPila (nodo i){
Nodo inicio = new nodo();
inicio = i
}
incio sig

null

31
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

}
nuevo
incio sig

dato sig

dato sig

dato sig
32

null
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;
}
incio sig

dato sig

dato sig

dato sig
33
Para verificar si un apila esta vacía
Boolean vacia(nodo inicio){
Boolean vacia = false;
Si inicio != null
Regresa true

Sino
Regresa vacia

}
incio sig

dato sig

dato sig

dato sig
34
Lista doblemente
enlazada

35
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

36
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.


sig
ant
Inicio

fin
37
Añadir elemento a una lista vacía

1-nodo = anterior y nodo=siguiente a NULL.

38
Insertar nuevo nodo
Caso 1 Insertar nodo en la primera posición
Nuevo
nodo

insertaNodo( nodo)
1-. Nodo=siguiente // debe apuntar a Lista.
2-. Nodo=anterior y Lista=anterior.
3-. Lista=anterior //debe apuntar a nodo.
null

1
2

Dato

Dato

…

Dato

3
39
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.
2
Dato

Dato

Dato
1
3

Dato
40

null
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
3

4
2
Dato

Dato

null

1
41
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.

42
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.

43
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

44
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.

45
Lista
Circular
46
Circular


Una lista circular es una lista lineal en la
que el último nodo a punta al primero.

inicio

fin

47
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

48
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.

49
Eliminar un elemento de la lista


Eliminar el único nodo de la lista.
2.

lista = siguiente mientras lista = siguiente sea distinto de nodo.
Hacemos que lista = siguiente apunte a nodo = siguiente.

3.

Eliminamos el nodo.

1.

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.
50
Eliminar un elemento de la lista


Caso general
1.
2.
3.
4.

Copiamos el contenido del nodo = siguiente sobre el contenido
de nodo.
Hacemos que nodo = siguiente apunte a nodo = siguiente =
siguiente.
Eliminamos nodo = siguiente.
Si lista es el nodo = siguiente, hacemos lista = nodo.

51

Más contenido relacionado

La actualidad más candente (20)

PILAS
PILASPILAS
PILAS
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Tad Colas
Tad ColasTad Colas
Tad Colas
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Colas Circulares
Colas CircularesColas Circulares
Colas Circulares
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
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 y Pilas
Listas y PilasListas y Pilas
Listas y Pilas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Fila,pila y cola ..
Fila,pila y cola ..Fila,pila y cola ..
Fila,pila y cola ..
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Lista,pilas y columnas
Lista,pilas y columnasLista,pilas y columnas
Lista,pilas y columnas
 
Listas
ListasListas
Listas
 
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
 
Gilmora
GilmoraGilmora
Gilmora
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 

Destacado

Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacionGabriely Peña
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10chrisflores001
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilasgeova666
 
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 colasHuascar Génere
 

Destacado (12)

Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacion
 
Pilas
PilasPilas
Pilas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Lista simple
Lista simpleLista simple
Lista simple
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 
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,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
 
EJERCICIOS DE SISTEMAS DE COLA M/M/1
EJERCICIOS DE SISTEMAS DE COLA M/M/1EJERCICIOS DE SISTEMAS DE COLA M/M/1
EJERCICIOS DE SISTEMAS DE COLA M/M/1
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 

Similar a Estructuras dinamicas ppt

135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptxiq72024016
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadasguestbd36f7
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Partecarpio
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Colaguest39b2f2
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Colaguest39b2f2
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
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
 
C6_PROGRAMACION_c.pptx
C6_PROGRAMACION_c.pptxC6_PROGRAMACION_c.pptx
C6_PROGRAMACION_c.pptxssuser948499
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Colaguest63a984
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Colaguest63a984
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Colaguest63a984
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasElbery
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a ParteUVM
 
Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcialCerdorock
 

Similar a Estructuras dinamicas ppt (20)

135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx
 
Sesion_09.pptx
Sesion_09.pptxSesion_09.pptx
Sesion_09.pptx
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
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
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Estructuraskp
EstructuraskpEstructuraskp
Estructuraskp
 
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
 
C6_PROGRAMACION_c.pptx
C6_PROGRAMACION_c.pptxC6_PROGRAMACION_c.pptx
C6_PROGRAMACION_c.pptx
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
Presentacion De Cola
Presentacion De ColaPresentacion De Cola
Presentacion De Cola
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte
 
Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcial
 

Último

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 

Último (20)

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 

Estructuras dinamicas ppt

  • 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  Circulares enlazadas (LDE) 2
  • 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 Recorrido de la lista Pertenece (nombreLista,informacion) → Booleano recorrer(nombreLista) Acceso a los nodos Info (referenciaNodo) → Informacion Modificación de los nodos Siguiente (referenciaNodo) → enlace asignarInfo (referenciaNodo, valorInformacion) asignarEnlace (referenciaNodo, valorEnlace) 3
  • 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) 4
  • 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". 5
  • 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. 6
  • 8. Creación de una lista  Lista vacía 8
  • 9. Inserción de un nodo CASO 1. Inserción al principio de la lista 9
  • 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 10
  • 11. Caso 2. Inserción en medio de la lista Caso 2.1 Insertar antes de Caso 2.2 Insertar después de inicio aux Ref nuevo info 11
  • 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 12 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 13
  • 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 14
  • 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 15
  • 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 16
  • 17. Caso 2.2 Elimina nodo antes de X información inicio R T aux X 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 17 sino R.sig = aux; T = null;
  • 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 18
  • 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; } } 19
  • 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 } 20
  • 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… dato sig dato sig dato sig dato sig 22 …
  • 23. Operaciones de una Fila Crearfila (nodo inicio)  Agregarfila (nodo inicio, int dato)  QuitarFila (nodo inicio)  Vacio (nodo inicio)  23
  • 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. 24
  • 25. Crea fila creaFila (nodo i){ nodo inicio = new nodo(); inicio = i; } incio sig 25
  • 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;} } incio sig dato sig null 26
  • 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; } incio sig dato sig dato sig null dato sig 27
  • 28. Vaciar una fila Boolean vacia(nodo inicio){ Boolean vacia = false; Si inicio = null Regresa true Sino Regresa vacia } null incio sig dato sig dato sig dato sig 28
  • 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) 30
  • 31. Crear una Pila creaPila (nodo i){ Nodo inicio = new nodo(); inicio = i } incio sig null 31
  • 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 } nuevo incio sig dato sig dato sig dato sig 32 null
  • 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; } incio sig dato sig dato sig dato sig 33
  • 34. Para verificar si un apila esta vacía Boolean vacia(nodo inicio){ Boolean vacia = false; Si inicio != null Regresa true Sino Regresa vacia } incio sig dato sig dato sig dato sig 34
  • 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 36
  • 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.  sig ant Inicio fin 37
  • 38. Añadir elemento a una lista vacía 1-nodo = anterior y nodo=siguiente a NULL. 38
  • 39. Insertar nuevo nodo Caso 1 Insertar nodo en la primera posición Nuevo nodo insertaNodo( nodo) 1-. Nodo=siguiente // debe apuntar a Lista. 2-. Nodo=anterior y Lista=anterior. 3-. Lista=anterior //debe apuntar a nodo. null 1 2 Dato Dato … Dato 3 39
  • 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. 2 Dato Dato Dato 1 3 Dato 40 null
  • 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 3 4 2 Dato Dato null 1 41
  • 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. 42
  • 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. 43
  • 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 44
  • 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. 45
  • 47. Circular  Una lista circular es una lista lineal en la que el último nodo a punta al primero. inicio fin 47
  • 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 48
  • 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. 49
  • 50. Eliminar un elemento de la lista  Eliminar el único nodo de la lista. 2. lista = siguiente mientras lista = siguiente sea distinto de nodo. Hacemos que lista = siguiente apunte a nodo = siguiente. 3. Eliminamos el nodo. 1. 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. 50
  • 51. Eliminar un elemento de la lista  Caso general 1. 2. 3. 4. Copiamos el contenido del nodo = siguiente sobre el contenido de nodo. Hacemos que nodo = siguiente apunte a nodo = siguiente = siguiente. Eliminamos nodo = siguiente. Si lista es el nodo = siguiente, hacemos lista = nodo. 51