[CHAT]*desvirtuadores~designs*[preguntas que no puedes hacer en ningun tema] -

Código:
#include<stdio.h>
#include<stdlib.h>

typedef struct Nodo{
    int Dato;
    struct Nodo *Link;
}Nodo;

typedef Nodo *Lista;

void mostrar(Lista L)
{
    Lista p;
    p = L;
    while(p != NULL)
    {
       printf("valor es %d\n",p->Dato);
       p = p->Link;    
    }
}


void Insertar(Lista *L, int e)
{
  Lista p,q,t;

  p=(Lista) malloc(sizeof(Nodo));
  p->Dato=e;
  p->Link=NULL;

  if(*L == NULL)
    {
      *L=p;
    }
  else
    {
      q=*L;
      t=*L;
      while(q != NULL)
	  {
	    if(q->Dato < e)
	    {
	      t=q;
	      q=q->Link;
	      if(q == NULL) // para el ultimo nodo
	      {
             t->Link = p;     
          }
	    }
	    else
	    {
	      if(q == t)  // para insertar al comienzo
		  {
		    p->Link=q;
		    *L=p;
		    q=NULL;
		  }
	        else
		    {             // entre medio
		      t->Link=p;
		      p->Link=q;
		      q=NULL;
	        }
	    }
	  }
    }
}

void Intercambiar(Lista *L)
{
  Lista p,q,t,s;
  p = *L;
  q = p->Link;
  s = *L;
  t = *L;
  while(s->Link != NULL)
  {
     t = s;
     s = s->Link;              
  }     
  p->Link = NULL;
  s->Link = q;
  t->Link = p;
  *L = s;
}


int main()
{
   Lista L;
   int i, n, e;
   
   L = NULL;
   
   printf("Ingrese valor de N ");
   scanf("%d",&n);
   
   for(i=1; i<=n; i++)
   {
     printf("\n\nInsertando e\n");
     printf("Ingrese valor de e ");
     scanf("%d",&e);
     Insertar(&L, e);

     printf("Lista\n");
     mostrar(L);   
   }       

   Intercambiar(&L);
   printf("Lista\n");
   mostrar(L);   
   

   system("pause");    
}
 
Código:
#include<stdio.h>
#include<stdlib.h>

typedef struct Nodo{
    int Dato;
    struct Nodo *Link;
}Nodo;

typedef Nodo *Lista;

void mostrar(Lista L)
{
    Lista p;
    p = L;
    while(p != NULL)
    {
       printf("valor es %d\n",p->Dato);
       p = p->Link;    
    }
}


void Insertar(Lista *L, int e)
{
  Lista p,q,t;

  p=(Lista) malloc(sizeof(Nodo));
  p->Dato=e;
  p->Link=NULL;

  if(*L == NULL)
    {
      *L=p;
    }
  else
    {
      q=*L;
      t=*L;
      while(q != NULL)
      {
        if(q->Dato < e)
        {
          t=q;
          q=q->Link;
          if(q == NULL) // para el ultimo nodo
          {
             t->Link = p;     
          }
        }
        else
        {
          if(q == t)  // para insertar al comienzo
          {
            p->Link=q;
            *L=p;
            q=NULL;
          }
            else
            {             // entre medio
              t->Link=p;
              p->Link=q;
              q=NULL;
            }
        }
      }
    }
}

void Intercambiar(Lista *L)
{
  Lista p,q,t,s;
  p = *L;
  q = p->Link;
  s = *L;
  t = *L;
  while(s->Link != NULL)
  {
     t = s;
     s = s->Link;              
  }     
  p->Link = NULL;
  s->Link = q;
  t->Link = p;
  *L = s;
}


int main()
{
   Lista L;
   int i, n, e;
   
   L = NULL;
   
   printf("Ingrese valor de N ");
   scanf("%d",&n);
   
   for(i=1; i<=n; i++)
   {
     printf("\n\nInsertando e\n");
     printf("Ingrese valor de e ");
     scanf("%d",&e);
     Insertar(&L, e);

     printf("Lista\n");
     mostrar(L);   
   }       

   Intercambiar(&L);
   printf("Lista\n");
   mostrar(L);   
   

   system("pause");    
}


WTF?:silvar: