//Lista sencilla #include<stdio.h> #include<conio.h> #include<iostream.h> #include<alloc.h> typedef struct nodo{ int info; struct nodo *sig; }; struct nodo *CAB=NULL, *AUX=NULL, *P=NULL; int valor; void insertar(void); void mostrar(void); void insertarc(void); void buscar(void); void ordenar(void); void insertad(void); void submenu (void); void insertara(void); void eliminar(void); void elimina(void); void eliminap(void); void eliminau(void); void elimina_a(void); void elimina_d(void); void invertir(void); void main(){ clrscr(); char op; do{ clrscr(); gotoxy(31,4);printf("--MENU PRINCIPAL--"); gotoxy(30,6);printf("1.Insertar "); gotoxy(30,7);printf("2.Eliminar "); gotoxy(30,8);printf("3.Buscar elemento"); gotoxy(30,9);printf("4.Ordenar la lista"); gotoxy(30,10);printf("5.Mostrar"); gotoxy(30,11);printf("6.Invertir la lista"); gotoxy(30,12);printf("0.Salir"); gotoxy(30,14);printf("Escoja una opcion "); op=getch(); clrscr(); switch(op){ case '1':submenu(); break; case '2':eliminar(); break; case '3':buscar(); break; case '4':ordenar(); break; case '5':mostrar(); break; case '6':invertir();break; } }while(op!='0'); gotoxy(29,9);printf("!!GRACIAS USUARIO!!"); gotoxy(30,11);printf("-Cod 2722071047-"); getch(); }//fin del main void submenu (void){ int opc; do{ clrscr(); gotoxy(33,5);printf("--INSERTAR--"); gotoxy(30,7);printf("1.Insertar al final"); gotoxy(30,8);printf("2.Insertar al comienzo"); gotoxy(30,9);printf("3.Insertar antes de"); gotoxy(30,10);printf("4.Insertar despues de"); gotoxy(30,11);printf("0.Volver al menu principal..."); gotoxy(30,13);printf("Digite una opcion "); opc=getch(); clrscr(); switch(opc){ case '1':insertar(); break; case '2':insertarc(); break; case '3':insertara(); break; case '4':insertad(); break; } }while(opc!='0'); }//fin de submenu void insertar(void){ AUX=new(nodo); clrscr(); gotoxy(30,5); printf("Numero a insertar ") ; scanf("%d", &AUX->info); clrscr(); AUX->sig=NULL; if(CAB==NULL){ CAB=AUX; } else{ P=CAB; while(P->sig!=NULL){ P=P->sig; } P->sig=AUX; } }//fin de insertar void insertarc(void){ AUX=new(nodo); gotoxy(30,5); printf("Numero a insertar ") ; scanf("%d", &AUX->info); clrscr(); AUX->sig=NULL; if(CAB!=NULL){ AUX->sig=CAB; } CAB=AUX; }//fin insertarc void insertara(void){ struct nodo *Q, *T; int x, sw; if(CAB==NULL){ gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else{ AUX=CAB; sw=1; gotoxy(30,5);printf("Insertar antes de..."); scanf("%d",&x); while((AUX->info!=x)&&(sw==1)&&(AUX!=NULL)){ if(AUX->sig!=NULL){ T=AUX; AUX=AUX->sig; } else { sw=0; } } if(sw==0){ gotoxy(28,7);printf("¡¡%d no esta en la lista!!...", x); getch(); } else{ Q=new(nodo); gotoxy(30,7); printf("Numero a insertar ") ; scanf("%d", &Q->info); clrscr(); if(CAB==AUX){ Q->sig=CAB; CAB=Q; } else{ T->sig=Q; Q->sig=AUX; } gotoxy(30,8); printf("¡¡Ha sido insertado!!") ; getch(); } } }//fin de insertara void insertad(void){ struct nodo *Q; int x; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else { AUX=CAB; gotoxy(30,5);printf("Insertar despues de..."); scanf("%d",&x); while((AUX->info!=x)&&(AUX!=NULL)){ AUX=AUX->sig; } if(AUX==NULL){ gotoxy(28,7);printf("¡¡%d no esta en la lista!!...", x); getch(); } else{ Q=new(nodo); gotoxy(30,7); printf("Numero a insertar ") ; scanf("%d", &Q->info); clrscr(); Q->sig=AUX->sig; AUX->sig=Q; gotoxy(30,8); printf("¡¡Ha sido insertado!!") ; getch(); } } }//fin de insertad void eliminar(void){ int opc; do{ clrscr(); gotoxy(33,5);printf("--ELIMINAR--"); gotoxy(30,7);printf("1.Eliminar el elemento"); gotoxy(30,8);printf("2.Eliminar el primer elemento"); gotoxy(30,9);printf("3.Eliminar el ultimo elemento"); gotoxy(30,10);printf("4.Eliminar antes de"); gotoxy(30,11);printf("5.Eliminar despues de"); gotoxy(30,12);printf("0.Volver al menu principal..."); gotoxy(30,14);printf("Digite una opcion "); opc=getch(); clrscr(); switch(opc){ case '1':elimina(); break; case '2':eliminap(); break; case '3':eliminau(); break; case '4':elimina_a(); break; case '5':elimina_d(); break; } }while(opc!='0'); }//fin de eliminar void elimina(void){ int x, sw=1; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else { gotoxy(30,5),printf("Eliminar el elemento..."); scanf("%d", &x); P=CAB; while(((P->info)!=x)&&(sw==1)){ if((P->sig)!=NULL){ AUX=P; P=P->sig; } else{ sw=0; } } if(sw==0){ gotoxy(28,7);printf("¡¡%d no esta en la lista!!...", x); getch(); } else{ if(P==CAB){ CAB=CAB->sig; } else{ AUX->sig=P->sig; } free(P); gotoxy(30,7);printf("%d ha sido eliminado", x); getch(); } } } //fin de elimina void eliminap(void){ if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else{ P=CAB; gotoxy(30,5);printf("%d ha sido eliminado", P->info); getch(); if(P->sig==NULL){ CAB=NULL; } else{ CAB=CAB->sig; } free(P); } }// fin de eliminap void eliminau(void){ if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else{ P=CAB; if(P->sig==NULL){ CAB=NULL; } else{ while(P->sig!=NULL){ AUX=P; P=P->sig; } AUX->sig=NULL; } gotoxy(30,5);printf("%d ha sido eliminado", P->info); getch(); free(P); } }//fin de eliminu void elimina_a(void){ struct nodo *Q; int x; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else{ gotoxy(30,5);printf("Eliminar antes de..."); scanf("%d",&x); if(CAB->info==x){ gotoxy(26,7);printf("¡¡No existen elementos antes de %d!!", x); getch(); return; } else{ Q=CAB; AUX=CAB; P=CAB; while((Q!=NULL)&&(Q->info!=x)){ P=AUX; AUX=Q; Q=Q->sig; } if(Q==NULL){ gotoxy(28,7);printf("¡¡%d no esta en la lista!!...", x); getch(); } else{ P->sig=Q; gotoxy(30,7);printf("%d ha sido eliminado", AUX->info); getch(); free(AUX); } } } }//fin de elimina_a void elimina_d(void){ int x, sw=1; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else{ gotoxy(30,5);printf("Eliminar despues de..."); scanf("%d",&x); P=CAB; while((sw==1)&&(P->info!=x)){ if(P->sig!=NULL){ P=P->sig; } else{ sw=0; } }//fin del while if(P->info!=x){ gotoxy(28,7);printf("¡¡%d no esta en la lista!!...", x); getch(); return; } if(P->sig==NULL){ gotoxy(26,7);printf("¡¡No existen elementos después de %d!!" , x); getch(); } else{ AUX=P->sig; P->sig=AUX->sig; AUX->sig=NULL; gotoxy(29,7);printf("%d ha sido eliminado " , AUX->info); getch(); free(AUX); } }//fin del else } void buscar(void){ int x; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else{ AUX=CAB; gotoxy(38,5);printf("--BUSQUEDA--"); gotoxy(30,7);printf("Digite el elememto a buscar..."); scanf("%d", &x); while((AUX->info!=x)&&(AUX!=NULL)){ AUX=AUX->sig; } if(AUX==NULL){ gotoxy(31,9);printf("¡¡%d no esta en la lista!!...", x); getch(); } else{ gotoxy(33,9);printf("%d esta en la lista...", x); getch(); } } } //fin de buscar void ordenar(void){ int temp; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getch(); } else { AUX=CAB; while(AUX->sig!=NULL) { P=AUX->sig; while(P!=NULL) { if((AUX->info)>(P->info)){ temp=AUX->info; AUX->info=P->info; P->info=temp; } P=P->sig; } AUX=AUX->sig; } gotoxy(28,5);printf("¡¡La lista ha sido ordenada!!..."); getch(); } }//fin de ordenar void mostrar(void){ int i=1; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); getchar(); return; } AUX=CAB; gotoxy(30,5);printf("Contenido de la lista"); while(AUX!=NULL){ gotoxy(30+i+i,7);printf("%dt",AUX->info); AUX=AUX->sig; i++; } getch(); }//fin de mostrar void invertir(void) { struct nodo *Q, *R; if(CAB==NULL) { gotoxy(28,5);printf("¡¡Lista vacia!!..."); } else{ P=CAB; Q=P->sig; R=Q->sig; while(Q!=NULL) { Q->sig=P; P=Q; Q=R; R=R->sig; } CAB->sig=NULL; CAB=P; gotoxy(28,5);printf("¡¡La lista ha sido invertida!!..."); } getch(); }
Para enviar comentarios debes estar registrado.
(c) ElRincondelC.com
Un proyecto de Urlan Heat : proyectos de Internet y soporte para el comercio electrónico.