Circulo
Enviado por jim117 • 12 de Julio de 2020 • Documentos de Investigación • 2.414 Palabras (10 Páginas) • 90 Visitas
#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;
...