c语言链表排序 从 if(head == NULL||head->zf<s->zf)开始 有点看不懂 求注释(每一句)

[复制链接]
查看11 | 回复3 | 2012-8-23 13:59:08 | 显示全部楼层 |阅读模式
//首先说这是一个从大到小的排序if(head == NULL||head->zfzf)//如果是第一次输入,或者输入的总分比头还大{s->next=head;//就将s放在头的前面,最为做大head=s;//然后让head指针重新指向头部最大 }else{p=head;//如果不是比头大,将p指向头指针,方便指针移动比较后,能够利用p插入。q=p->next;//而q是p的下一个,利用q做比较,p和q是一对基友。while(q!=NULL&&s->zf zf)//如果没有到链表尾,或者输入的s比q还小,{p=q;q=q->next;//p和q继续后移动。}//while循...
回复

使用道具 举报

千问 | 2012-8-23 13:59:08 | 显示全部楼层
if(head == NULL||head->zfzf)
//判断head是否为空 或者 head->zf是否小于s->zf{s->next=head;
.//使s->next指向head的地址head=s;
//将s中的内容赋值给head}else{p=hea...
回复

使用道具 举报

千问 | 2012-8-23 13:59:08 | 显示全部楼层
if else语句就是来判断head如果为空或者head->zf小于s->zf时就确定head的值为s,如果条件不成立的话就把head赋值给p,然后再用while来判断p的条件,然后进行相应的动作...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行