要求把链表数据做插入法排序,我算法出错误了,看不出来,大家一起帮帮我啊
#include "stdio.h"
typedef struct node{
int data;
struct node *next;
}xnode;
void paixu(int n,xnode *t)
{int i,j;
 xnode *p,*q,*k;
 p=t;
 while(p!=NULL)
   {printf("%d  ",p->data);
    p=p->next;
   }
 for(i=1;i<n;i++)
   {k=t;
    p=t->next;
    for(j=1;j<i;j++)
     {p=p->next;
      k=k->next;}
    q=p;
    k->next=p->next;
    k=t;
     for(j=0;j<i;j++)
       {if(k->data>q->data)
    break;
    p=k;
    k=k->next;
       }
      if(k->data>q->data)
       {p->next=q;
 q->next=k;}
      else
 k->next=q;
    }
  }
main()
{xnode *pp,*tt,*qq;
 int i,j,n,shu[100];
 printf("number:");
 scanf("%d",&n);
 printf("\ninput:");
 for(i=0;i<n;i++)
 scanf("%d",&shu[i]);
 tt=(xnode *)malloc(sizeof(xnode));
 tt->data=shu[0];
 tt->next=NULL;
 qq=tt;
 for(i=1;i<n;i++)
   {pp=(xnode *)malloc(sizeof(xnode));
    pp->data=shu[i];
    qq->next=pp;
    qq=qq->next;
   }
    pp->next=NULL;
 paixu(n,tt);
 qq=tt;
 printf("\n");
 for(i=0;i<n;i++)
   {printf("%d  ",qq->data);
    qq=qq->next;
   }
 printf("\n");
 getchar();
}
大家帮我看看啊~~谢谢了
											


											
	    

	
