ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Circulo


Enviado por   •  12 de Julio de 2020  •  Documentos de Investigación  •  2.414 Palabras (10 Páginas)  •  71 Visitas

Página 1 de 10

#include

#include

#include

struct nodo{

        int dato;

        nodo* siguiente;

        nodo* atras;

} *primero, *ultimo;

void insertarNodo();

int desplegarListaPU();

void eliminarNodo2(int valor);

int buscarNodo(int brinco1);

int main(){

        int num,nodoBuscado,brinco1,cont;

        printf("Cuantos numeros quieres ingresar??\n");

        scanf("%d",&num);

        for (int i=1;i<=num;i++)

        insertarNodo();

        

        printf("\n\n LISTA CIRCULAR DOCLE DEL PRIMERO AL ULTIMO\n");

        desplegarListaPU();

        

        int iter=0;

        printf("\n Ingresa el valor del brinco:\n");

        scanf("%d",&brinco1);

        do{

        nodoBuscado=buscarNodo(brinco1);

        printf("nodo buscado%d\n",nodoBuscado);

        eliminarNodo2(nodoBuscado);

        printf("\n LISTA ES LA SIGUIENTE:\n");

        cont=desplegarListaPU();

        }while (cont!=1);

        

/*        nodoBuscado=buscarNodo(brinco1);

        eliminarNodo2(nodoBuscado);

        printf("\n\n LISTA CIRCULAR del segundo DEL PRIMERO AL ULTIMO\n");

        desplegarListaPU();        */

        

        return 0;

}

// primero = 67    ultimo = 12                nuevo = 12               actual =  67                          67,  23, 8, 12

// lista circular doble  =            (12) <- 67 -> <- 23 -> <- 8 -> <- 12 -> (67)

void insertarNodo(){

        nodo* nuevo = new nodo();

        printf("Ingrese el dato que contendra el nuevo Nodo: ");

        scanf("%d",&nuevo->dato);

        

        if(primero==NULL){

                primero = nuevo;

                ultimo = nuevo;

                primero->siguiente = primero;

                primero->atras = ultimo;

        }else{

                ultimo->siguiente = nuevo;

                nuevo->atras = ultimo;

                nuevo->siguiente = primero;

                ultimo = nuevo;

                primero->atras = ultimo;

        }

        printf("\n Nodo Ingresado\n\n");

        

}

int desplegarListaPU(){

        nodo* actual = new nodo();

        actual = primero;

        int contador=0;

        if(primero!=NULL){

                do{

                        printf("%d ", actual->dato);

                        

                        actual = actual->siguiente;

                        //printf("%d, ", actual->dato);

                        contador=contador+1;

                }while(actual!=primero);

                

        }else{

                printf("\n La lista se Encuentra Vacia\n\n");

        }

                return (contador);

                

}

void eliminarNodo2(int valor){

        nodo* actual = new nodo();

        actual = primero;

        nodo* anterior = new nodo();

        anterior = NULL;

        int nodoBuscado = 0, encontrado = 0;

        //printf(" \nIngrese el valor de nodo a Buscar para Eliminar: ");

        //scanf("%d",&nodoBuscado);

        nodoBuscado=valor;

        if(primero!=NULL){

                do{

                        if(actual->dato == nodoBuscado){

                                printf("\n Nodo con el dato ( %d ) Encontrado", nodoBuscado);

                                if(actual==primero){

                                        primero = primero->siguiente;

...

Descargar como (para miembros actualizados)  txt (5.6 Kb)   pdf (30 Kb)   docx (8.2 Kb)  
Leer 9 páginas más »
Disponible sólo en Clubensayos.com