SlideShare une entreprise Scribd logo
1  sur  10
Es una lista enlazada pero mas
   superior. Cada nodo tiene dos
    enlaces: uno apunta al nodo
anterior, o apunta al valor NULL si
   es el primer nodo; y otro que
apunta al nodo siguiente, o apunta
al valor NULL si es el último nodo.
Nos permite almacenar datos de una forma
organiza.

Es una estructura TDA dinámica

Cada nodo de la lista doblemente enlazada
contiene dos punteros, de forma que uno
apunta al siguiente nodo y el otro al
predecesor, permitiendo que se pueda
recorrer la lista en ambos sentidos.
Una gran manera de representar a una
baraja de cartas en un juego.

Un árbol de pila, tabla hash, y binario se
puede implementar utilizando una lista
Doblemente enlazada.
void Insertar(Lista *lista, int v) {
     pNodo nuevo, actual;

    /* Crear un nodo nuevo */
    nuevo = (pNodo)malloc(sizeof(tipoNodo));
    nuevo->valor = v;

    /* Colocamos actual en la primera posición de la lista */
    actual = *lista;
    if(actual) while(actual->anterior) actual = actual->anterior;

    /* Si la lista está vacía o el primer miembro es mayor que el nuevo */
    if(!actual || actual->valor > v) {
       /* Añadimos la lista a continuación del nuevo nodo */
       nuevo->siguiente = actual;
       nuevo->anterior = NULL;
       if(actual) actual->anterior = nuevo;
       if(!*lista) *lista = nuevo;
    }
    else {
       /* Avanzamos hasta el último elemento o hasta que el siguiente tenga
          un valor mayor que v */
       while(actual->siguiente &&actual->siguiente->valor <= v)
          actual = actual->siguiente;
       /* Insertamos el nuevo nodo después del nodo anterior */
       nuevo->siguiente = actual->siguiente;
       actual->siguiente = nuevo;
       nuevo->anterior = actual;
       if(nuevo->siguiente) nuevo->siguiente->anterior = nuevo;
    }
}
Insertar un elemento en la primera posición de la lista
nodo->siguiente debe apuntar a Lista.
nodo->anterior apuntará a Lista->anterior.
Lista->anterior debe apuntar a nodo.
 Insertar un elemento en la última posición de la lista
nodo->siguiente debe apuntar a Lista->siguiente (NULL).
Lista->siguiente debe apuntar a nodo.
nodo->anterior apuntará a Lista.
 Insertar un elemento a continuación de un nodo
cualquiera de una lista
Hacemos que nodo->siguiente apunte a lista->siguiente.
Hacemos que Lista->siguiente apunte a nodo.
Hacemos que nodo->anterior apunte a lista.
Hacemos que nodo->siguiente->anterior apunte a nodo.
void        (posicion p)
{
if (p->anterior != NULL)
        p->anterior->siguiente = p->siguiente;
if (p->siguiente != NULL)
        p->siguiente->anterior = p->anterior;
free(p);
}
Listas enlazadas doble exposicion

Contenu connexe

Tendances

Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairoYossLu Molina
 
Cuadro comparativo Algoritmos de Ordenamiento
Cuadro comparativo Algoritmos de OrdenamientoCuadro comparativo Algoritmos de Ordenamiento
Cuadro comparativo Algoritmos de OrdenamientoDanilo Henríquez
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una colajeffersoncenteno
 
Ejercicios Modelamiento E-R y normalización
Ejercicios Modelamiento E-R y normalizaciónEjercicios Modelamiento E-R y normalización
Ejercicios Modelamiento E-R y normalizaciónRicardo Alvarez
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
1.5 binary search tree
1.5 binary search tree1.5 binary search tree
1.5 binary search treeKrish_ver2
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda BinariaITCV
 
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
 
Listas Enlazadas
Listas EnlazadasListas Enlazadas
Listas EnlazadasVane Borjas
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaJosé Antonio Sandoval Acosta
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisionesemiru48
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el MejorTutor4uDev
 
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
 

Tendances (20)

Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairo
 
Cuadro comparativo Algoritmos de Ordenamiento
Cuadro comparativo Algoritmos de OrdenamientoCuadro comparativo Algoritmos de Ordenamiento
Cuadro comparativo Algoritmos de Ordenamiento
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una cola
 
Arbol B
Arbol BArbol B
Arbol B
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Ejercicios Modelamiento E-R y normalización
Ejercicios Modelamiento E-R y normalizaciónEjercicios Modelamiento E-R y normalización
Ejercicios Modelamiento E-R y normalización
 
Listas
ListasListas
Listas
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Quicksort
QuicksortQuicksort
Quicksort
 
1.5 binary search tree
1.5 binary search tree1.5 binary search tree
1.5 binary search tree
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
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 Enlazadas
Listas EnlazadasListas Enlazadas
Listas Enlazadas
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de Búsqueda
 
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
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el Mejor
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 

En vedette

Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazadayordy Macoto
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesMago Julio Cesar
 
Listas Encadenadas Jose Tannous
Listas Encadenadas Jose TannousListas Encadenadas Jose Tannous
Listas Encadenadas Jose TannousJose Tannous
 
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
 
Estructura de Datos, Multilistas
Estructura de Datos, MultilistasEstructura de Datos, Multilistas
Estructura de Datos, MultilistasCristhian Rosales
 
Prototipo de un juego de poker "Programado en lenguaje C"
Prototipo de un juego de poker "Programado en lenguaje C"Prototipo de un juego de poker "Programado en lenguaje C"
Prototipo de un juego de poker "Programado en lenguaje C"Maynor Mendoza
 
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
 

En vedette (8)

Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazada
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas Circulares
 
Listas Encadenadas Jose Tannous
Listas Encadenadas Jose TannousListas Encadenadas Jose Tannous
Listas Encadenadas Jose Tannous
 
Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacion
 
Estructura de Datos, Multilistas
Estructura de Datos, MultilistasEstructura de Datos, Multilistas
Estructura de Datos, Multilistas
 
Prototipo de un juego de poker "Programado en lenguaje C"
Prototipo de un juego de poker "Programado en lenguaje C"Prototipo de un juego de poker "Programado en lenguaje C"
Prototipo de un juego de poker "Programado en lenguaje C"
 
Listas
ListasListas
Listas
 
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
 

Similaire à Listas enlazadas doble exposicion

Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcialCerdorock
 
Listas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPListas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPMiguelGomez371
 
Unidad tres estructura de datos
Unidad tres estructura de datosUnidad tres estructura de datos
Unidad tres estructura de datosRené Sosa Arana
 
Implementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxImplementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxRafael nin
 
135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptxiq72024016
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337CJrosario2
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxlicredesysistemas
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxlicredesysistemas
 
Listas cola y_pila.ranli_y_eladio
Listas cola y_pila.ranli_y_eladioListas cola y_pila.ranli_y_eladio
Listas cola y_pila.ranli_y_eladioRanli Cruz
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas pptAby Castillo
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadasguestbd36f7
 

Similaire à Listas enlazadas doble exposicion (20)

Lista enlazada 2 parcial
Lista enlazada 2 parcialLista enlazada 2 parcial
Lista enlazada 2 parcial
 
Teoria de listas
Teoria de listasTeoria de listas
Teoria de listas
 
Listas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPListas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UP
 
Sesion_09.pptx
Sesion_09.pptxSesion_09.pptx
Sesion_09.pptx
 
Lista simple
Lista simpleLista simple
Lista simple
 
Unidad tres estructura de datos
Unidad tres estructura de datosUnidad tres estructura de datos
Unidad tres estructura de datos
 
Estructuraskp
EstructuraskpEstructuraskp
Estructuraskp
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
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
 
135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Listas
ListasListas
Listas
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptx
 
como Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptxcomo Insertar Elementos en Lista (LSE).pptx
como Insertar Elementos en Lista (LSE).pptx
 
Listas cola y_pila.ranli_y_eladio
Listas cola y_pila.ranli_y_eladioListas cola y_pila.ranli_y_eladio
Listas cola y_pila.ranli_y_eladio
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas ppt
 
Listas encadenadas
Listas encadenadas Listas encadenadas
Listas encadenadas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 

Plus de jcum1

Socializacion
SocializacionSocializacion
Socializacionjcum1
 
La personalidad
La personalidadLa personalidad
La personalidadjcum1
 
Identidad cultural
Identidad culturalIdentidad cultural
Identidad culturaljcum1
 
Buses de datos
Buses de datosBuses de datos
Buses de datosjcum1
 
Dispositivos de entrada salida
Dispositivos de entrada salidaDispositivos de entrada salida
Dispositivos de entrada salidajcum1
 
Clasificacion de los robots
Clasificacion de los robotsClasificacion de los robots
Clasificacion de los robotsjcum1
 

Plus de jcum1 (6)

Socializacion
SocializacionSocializacion
Socializacion
 
La personalidad
La personalidadLa personalidad
La personalidad
 
Identidad cultural
Identidad culturalIdentidad cultural
Identidad cultural
 
Buses de datos
Buses de datosBuses de datos
Buses de datos
 
Dispositivos de entrada salida
Dispositivos de entrada salidaDispositivos de entrada salida
Dispositivos de entrada salida
 
Clasificacion de los robots
Clasificacion de los robotsClasificacion de los robots
Clasificacion de los robots
 

Listas enlazadas doble exposicion

  • 1.
  • 2.
  • 3. Es una lista enlazada pero mas superior. Cada nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al valor NULL si es el primer nodo; y otro que apunta al nodo siguiente, o apunta al valor NULL si es el último nodo.
  • 4. Nos permite almacenar datos de una forma organiza. Es una estructura TDA dinámica Cada nodo de la lista doblemente enlazada contiene dos punteros, de forma que uno apunta al siguiente nodo y el otro al predecesor, permitiendo que se pueda recorrer la lista en ambos sentidos.
  • 5. Una gran manera de representar a una baraja de cartas en un juego. Un árbol de pila, tabla hash, y binario se puede implementar utilizando una lista Doblemente enlazada.
  • 6. void Insertar(Lista *lista, int v) { pNodo nuevo, actual; /* Crear un nodo nuevo */ nuevo = (pNodo)malloc(sizeof(tipoNodo)); nuevo->valor = v; /* Colocamos actual en la primera posición de la lista */ actual = *lista; if(actual) while(actual->anterior) actual = actual->anterior; /* Si la lista está vacía o el primer miembro es mayor que el nuevo */ if(!actual || actual->valor > v) { /* Añadimos la lista a continuación del nuevo nodo */ nuevo->siguiente = actual; nuevo->anterior = NULL; if(actual) actual->anterior = nuevo; if(!*lista) *lista = nuevo; } else { /* Avanzamos hasta el último elemento o hasta que el siguiente tenga un valor mayor que v */ while(actual->siguiente &&actual->siguiente->valor <= v) actual = actual->siguiente; /* Insertamos el nuevo nodo después del nodo anterior */ nuevo->siguiente = actual->siguiente; actual->siguiente = nuevo; nuevo->anterior = actual; if(nuevo->siguiente) nuevo->siguiente->anterior = nuevo; } }
  • 7.
  • 8. Insertar un elemento en la primera posición de la lista nodo->siguiente debe apuntar a Lista. nodo->anterior apuntará a Lista->anterior. Lista->anterior debe apuntar a nodo. Insertar un elemento en la última posición de la lista nodo->siguiente debe apuntar a Lista->siguiente (NULL). Lista->siguiente debe apuntar a nodo. nodo->anterior apuntará a Lista. Insertar un elemento a continuación de un nodo cualquiera de una lista Hacemos que nodo->siguiente apunte a lista->siguiente. Hacemos que Lista->siguiente apunte a nodo. Hacemos que nodo->anterior apunte a lista. Hacemos que nodo->siguiente->anterior apunte a nodo.
  • 9. void (posicion p) { if (p->anterior != NULL) p->anterior->siguiente = p->siguiente; if (p->siguiente != NULL) p->siguiente->anterior = p->anterior; free(p); }