#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct emibo{
char name[20];
struct meibo *next;
struct meibo *befor;
};

void main(void){
struct meibo *a;
struct meibo *b;

b=NULL;

while(1){
if((p=(struct meibo *)calloc(1,sizeof(struct meibo)))==NULL){

printf("ERROR。\n"); /*領域確保失敗時のエラー*/
}
gets(a->name); /*名前入力*/
if((strcmp(a->name,"***"))==0){ /*終了条件*/
break;
}
a->next=b;
a=b;
}
for(a=b; a->next !=NULL; a=a->next){ /*逆から表示*/
printf("%s\n",a->name);
}
printf("%s\n",a->name);
}

長々と申し訳ないのですが、一応これで入力したものを
逆からの表示をさせたのですが
さらにこの後入力順に表示させる方法がどうしても解りません。
よろしければやり方を教えてください。