hola chicos,,
ojala me puedan asesorar..
es una lista enlazada y bueno al llenar los datos todo bien, al mandarlos a pantalla todo bien, pero cuando le doy la opcion que me los manda a pantalla recorriendo la lista hacia atras. ahi es el problema no me manda nada:( 
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <alloc.h>
typedef struct persona
 {
   int numc;         /* Numero de control*/
   char nom[30];          /* Nombre del paciente */
   int  num;            /* Numero de afiliacion */
   int edad;               /* Edad del paciente */
   char enfe[30];         /* Enfermedad */
   struct persona *sig;
   struct persona  *ant;
 }nodo;
/* declaracion de apuntadores a NODO*/
  nodo *cola;
  nodo *cabeza;
  nodo *nuevo;
  /*FUNCIONES A UTILIZAR O HACER LLAMAR*/
void iniciar(void);
void altas();
void recibe (nodo* paciente);
void mostrar();
void mostrar1();
/* FUNCIONA PRINCIPAL */
void main ()
 {
   char opc;
do                                       /* MENU DE OPCION A REALIZAR*/
   {
      clrscr( );
      gotoxy(20,6);
      printf("******Bienvenido al  registro de un nuevo paciente******");
      //textcolor(BLUE);
      gotoxy(10,8);
      printf("**Presiona cualquier tecla para continuar y ver el menu**");
      //textcolor(BLUE);
      //textbackground(WHITE);
      getch();
      clrscr();
      gotoxy(30,8);
      printf("1.- Introduce datos del paciente");
      gotoxy(30,10);
      printf("2.- Visualizar los datos");
      gotoxy(30,12);
      printf("3.- Visualizar los datos hacia atras");
      gotoxy(30,14);
                printf("4.- Salir");
      opc=getch( );
                  /*switch que ejecuta opcion a realizar */
      switch(opc)
      {
         case '1':
            altas( );
            break;
         case '2':
            mostrar();
            break;
         case '3':
             mostrar1();
             break;
                        case '4':
            printf("\n\nBye.!HASTA PRONTO!. \npresiona cualquier tecla");
            getch();
           }
   }while (opc!='4');
}
    flushall(); /*LIMPIA VARIABLES de posible basura*/
 void altas ()
    {                                  /* funcion de altas y una variable*/
     nodo *tm;                         /*   temporal*/
     if (cabeza==NULL)
      {
      cabeza=(nodo*)malloc(sizeof(nodo));
      recibe (cabeza);
      printf ("!!!Dato Recibido!!");
      cabeza->sig=NULL;
      cola=cabeza;
      cabeza->sig =nuevo;
      }
     else
      {
       tm=(nodo*)malloc(sizeof(nodo));
      recibe ;
      printf ("!!!Dato Recibido!!");
      tm->sig=cabeza->sig;
      cabeza->sig=nuevo;
      }
     }
                                /* funcion que muesrta los datos capturados */
void mostrar1()
   {
   nodo * tm;
   clrscr();
   tm=cabeza;
   while 
      {
      printf("Nombre del paciente:%s\n",tm->nom);
      printf("Numero de control de expediente:%d\n",tm->numc);
      printf("Numero de afiliacion:%d\n",tm->num);
      printf("%Enfermedad que padece es:\n",tm->enfe);
      printf("Edad del paciente:%d\n",tm->edad);
      tm=tm->sig;
      }
    printf("\n\n\t");
   getch();
   }
 void mostrar()
   {
   nodo * tm;
   clrscr();
   tm=cabeza;
   while 
      {
      printf("Nombre del paciente:%s\n",tm->nom);
      printf("Numero de control de expediente:%d\n",tm->numc);
      printf("Numero de afiliacion:%d\n",tm->num);
      printf("%Enfermedad que padece es:\n",tm->enfe);
      printf("Edad del paciente:%d\n",tm->edad);
      tm=tm->sig;
      }
    printf("\n\n\t");
   getch();
   }
void recibe (nodo* paciente)
 {
  printf ("\nNumero de expediente:\n ");
  scanf("%d",&(paciente->numc));
  printf ("Nombre del paciente: \n");
  scanf("%s",&(paciente->nom));
  printf ("\nNumero de afiliacion:\n");
  scanf ("%d",&(paciente->num));
  printf("\nEdad del paciente:\n");
  scanf("%d",&(paciente->edad));
  printf("\nPadecimiento o enfermedad del paciente:\n");
  scanf("%s",&(paciente->enfe));
   gotoxy(20,6);
   printf("\n\n\n");
 }
 void iniciar (void)
  {
   cola=cabeza=nuevo=NULL;
  }
presiento que voy a tener un gran ERROR verdad?
saludos chicos