Código
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> typedef struct nodo{ char libro[100]; struct nodo *siguiente; }tiponodo; typedef tiponodo *pnodo; typedef tiponodo *pila; void ingresar(char *a); void push(pila *p,char a[]); void ordenar(pila *p); void mostrar(pila p); int main() { pila p=NULL; char libro[100]; char res='S'; while(res=='S'||res=='s') { ingresar(libro); push(&p,libro); printf(" Desea seguir ingresando: "); scanf("%s",&res); } ordenar(&p); mostrar(p); } void ingresar(char *a) { printf("\n Ingrese el nombre del libro: "); scanf("%s",a); } void push(pila *p,char a[]) { pnodo nuevo; nuevo=(pnodo)malloc(sizeof(tiponodo)); strcpy(nuevo->libro,a); nuevo->siguiente=*p; *p=nuevo; } void ordenar(pila *p) { pnodo i,j; i=*p; j=*p; char c[100]; while(i!=NULL) { while(j!=NULL&&(j->siguiente)!=NULL) { if(strcmp(j->libro,(j->siguiente)->libro)>0) { strcpy(c,j->libro); strcpy(j->libro,(j->siguiente)->libro); strcpy((j->siguiente)->libro,c); } j=j->siguiente; } i=i->siguiente; j=i; } } void mostrar(pila p) { pnodo aux; aux=p; while(aux!=NULL) { printf("\n El libro es %s",aux->libro); aux=aux->siguiente; } }