View
222
Download
0
Category
Preview:
Citation preview
8/3/2019 Lista - Enrique Galindo Crdenas
1/3
Lista Enrique Galindo Crdenas
#include #include #include
struct Nodo{char info;struct Nodo *sig;};
typedef struct Nodo nodo;typedef nodo * nodoAp;
void inserta(nodoAp*,char);char elimina(nodoAp*,char);int listaVacia(nodoAp);void imprimeLista(nodoAp);
int main(void){
nodoAp inicioPtr=NULL;int opcion;char x;printf ("\nSelecciona una Opcion");printf ("\n1...Inserta");printf ("\n2...Borra");printf ("\n3...Fin");while(opcion!=3){
printf ("\n?");scanf ("%d",&opcion);fflush(stdin);if(opcion==1){
printf ("\n Elemento a Insertar:");scanf ("%c",&x);
inserta (&inicioPtr,x);imprimeLista(inicioPtr);}else if(opcion==2){
if(!listaVacia(inicioPtr)){printf ("\nCaracter a Borrar = ");
scanf ("\n%c",&x);if (elimina(&inicioPtr,x)==x){
printf ("\nSe Elimino a %c\n",x);imprimeLista(inicioPtr);}
else{
printf ("\n%c No esta en Lista",x);}}
else{printf ("\nLista Vacia");}
}else{
printf ("\nOpccion Invalida");}
8/3/2019 Lista - Enrique Galindo Crdenas
2/3
}//fin de while}
void inserta (nodoAp *inicioPtr,char x){nodoAp nuevo,antes,aqui;
nuevo=(nodoAp)malloc(sizeof(nodo));if (nuevo!=NULL){
nuevo->info=x;nuevo->sig=NULL;antes=NULL;aqui=*inicioPtr;while(aqui!=NULL&&x>aqui->info){
antes=aqui;aqui=aqui->sig;}
if (antes==NULL){nuevo->sig=*inicioPtr;*inicioPtr=nuevo;}
else{antes->sig=nuevo;nuevo->sig=aqui;}}
elseprintf ("Falta Memoria");
}
char elimina (nodoAp *inicioPtr,char x){nodoAp antes,aqui;char r;if (xinfo)
r='\0';else{
antes=NULL;aqui=*inicioPtr;while(aqui!=NULL&&x>aqui->info){
antes=aqui;aqui=aqui->sig;}
if (aqui!=NULL&&x==aqui->info){r=aqui->info;if (antes==NULL)
*inicioPtr=aqui->sig;else
antes->sig=aqui->sig;free(aqui);}
elser='\0';}
return r;}
8/3/2019 Lista - Enrique Galindo Crdenas
3/3
int listaVacia(nodoAp inicioPtr){return inicioPtr==NULL;}
void imprimeLista(nodoAp inicioPtr){nodoAp auxPtr;auxPtr=inicioPtr;printf ("\nInicioPtr--> ");while(auxPtr!=NULL){
printf ("%c--> ",auxPtr->info);auxPtr=auxPtr->sig;}printf ("NULL\n");}
Recommended