//LISTA ORDENA ASCENDENTEMENTE #include #include #include #include #include #include struct elemento { int info; struct elemento *sig,*ant; }; void dimensionar(struct elemento ** temp); void insertar(struct elemento **,struct elemento **); void visualiza(struct elemento **temp,struct elemento **lista,struct elemento **aux); void sacar (struct elemento **lista); void sacar_x (struct elemento **lista); void menu(); /* void menu1(); void menu2 (); void menu3 ();*/ void main () { char op; struct elemento *lista, *temp, *aux; clrscr(); lista=NULL; temp=NULL; aux=NULL; do { clrscr (); menu (); op=toupper(getch()); switch (op) { case 'A': insertar (&temp,&lista); break; case 'B': sacar_x(&lista); break; case 'C': visualiza (&temp,&lista,&aux); break; case 'D': break; } }while(op!='D'); } void dimensionar(struct elemento **temp) { *temp=(struct elemento *)malloc(sizeof(struct elemento *)); } void insertar(struct elemento **temp, struct elemento **lista) { int a; clrscr(); dimensionar(temp); printf("\n Dato: "); scanf("%d",&a); (*temp)->info=a; (*temp)->sig=*lista; (*temp)->ant=NULL; if(*lista!=NULL) (*lista)->ant=*temp; *lista=*temp; } void visualiza(struct elemento **temp,struct elemento **lista,struct elemento **aux) { if(*lista!=NULL) { *temp=*lista; printf("\n los DATOS SON"); while(*aux!=NULL) { printf("\n Dato: %d", (*aux)->info); *aux=(*aux)->ant; } } else printf("\n Aun no hay datos"); getch(); } void sacar_x(struct elemento **lista) { struct elemento *past,*next,*temp; int a,salir=0; if(lista!=NULL) { clrscr(); printf("Dato a sacar--> "); scanf("%d",&a); temp=*lista; while( (temp!=NULL) && (!salir)) { if((temp)->info==a) { past=(temp)->ant; next=(temp)->sig; if(past!=NULL) past->sig=next; if(next!=NULL) next->ant=past; if(past==NULL) *lista=next; salir=1; } (temp)=(temp)->sig; }//while if(salir) printf ("\n Se hallo el elemento y fue sacado"); else printf("\n No se hallo el elemento"); } else printf("Aun no hay datos"); getch(); } void menu() { cout<<" LISTA ORDENADA \n"; cout<<"\n A: Insertar elemento ordenado"; cout<<"\n B: Eliminar elemento seleccionado"; cout<<"\n C: Visualizar X"; cout<<"\n D: Salir"; cout<<"\n\n Opcion-> "; }