universitarios: ricardo gonzales jimenez wilfredo coca reinaldo yohan docente: lic. israel torrez...

Download Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas

Post on 23-Jan-2016

213 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Universitarios:Ricardo Gonzales JimenezWilfredo Coca ReinaldoYohan

    Docente:Lic. Israel Torrez Valverde

    Tema:Listas doblemente Enlazadas

  • LISTAS DOBLEMENTE ENLAZADAS

    Las listas doblemente enlazadas son estructuras de datos semejantes a las Listas Enlazadas Simples. La asignacin de memoria es hecha al momento de la ejecucin.

    Una lista doblemente enlazada es una lista lineal en la que cada nodo tiene dos enlaces, uno al nodo siguiente, y otro al anterior.

    El nodo tpico es el mismo que para construir las listas que hemos visto, salvo que tienen otro puntero al nodo anterior:

    struct nodo{int dato;struct nodo *siguiente;struct nodo *anterior;};

    DEFINICION:

  • LISTAS DOBLEMENTE ENLAZADAS

    OPERACIONES SOBRE LA LISTA DOBLEMENTE ENLAZADA:A. Declaracion de tipo, para manejar listas doblemente enlazadas

    B. Insercin de un elemento en la lista

    1. Insercin en una lista vaca 2. Insercin al inicio de la lista 3. Insercin al final de la lista 4. Insercin antes de un elemento de la lista 5. Insercin despus de un elemento de la lista

    C. Eliminacin de un elemento de la lista 1. Eliminacin en la posicin 1 en una lista con un solo elemento 2. Eliminacin en la posicin 1 en una lista con varios elementos 3. Eliminacin en la ultima posicin (el ultimo elemento) 4. Eliminacin en otra parte de la lista en cierta posicin

    D. Visualizacin de la lista

    E. Destruccin de la lista

  • LISTAS DOBLEMENTE ENLAZADAS

    INSERCION DE UN ELEMENTO EN LA LISTA:INSERCION EN UNA LISTA VACIAModelo de la funcin: int ins_en_lista_vacia (dl_Lista *lista, char *dato); Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a l, adems el puntero que define la lista, que valdr NULL:El proceso es muy simple, bastar con que:lista apunta a nodo.lista->siguiente y lista->anterior apunten a null.

  • LISTAS DOBLEMENTE ENLAZADAS

    INSERCION DE UN ELEMENTO EN LA LISTA:INSERCION AL INICIO DE LA LISTAPartimos de una lista no vaca. Para simplificar, consideraremos que lista apunta al primer elemento de la lista doblemente enlazada: Insertar en primera posicinEl proceso es el siguiente:nodo->siguiente debe apuntar a Lista.nodo->anterior apuntar a Lista->anterior.Lista->anterior debe apuntar a nodo. Nodo insertado en primera posicinRecuerda que Lista no tiene por qu apuntar a ningn miembro concreto de una lista doblemente enlazada, cualquier miembro es igualmente vlido como referencia.