[求助]想不明白这个单链表排序算法
typedef struct node{
int data;
struct node *next;
}*Linklist,Node;
void paixu(Linklist head)
{
Linklist p,q,small;
int temp;
for(p=head->next;p->next!=NULL;p=p->next) /* for(循环变量初值,循环条件,循环变量增量)*/
{ small=p;
for(q=p->next;q;q=q->next) /* q作为条件,是何用意?*/
if(q->data<small->data)
small=q;
if(small!=p)
{
temp=p->data;
p->data=small->data;
}
printf("输出排序后的数字:\n");
output(head);
}
有没有人能说出第一次循环的流程