标题:看不懂,求大神讲解~~
只看楼主
若逝
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-6
结帖率:0
已结贴  问题点数:20 回复次数:3 
看不懂,求大神讲解~~
这段是用链表和文件做的学生成绩管理系统按学号排序。。。看不懂。。。。。求讲解

struct stu  *sort_xuehao (struct stu  *head)  //     按学号排序
{
    struct stu  *p,*p1,*p2,*p3;
    struct stu  h, t;
    if (head == NULL) return NULL;
    h.next=head;
    p=&h;
    while (p->next!=NULL)
    {
        p=p->next;
    }
    p=p->next=&t;
    while (p!=h.next)
    {
        p3=&h;
        p1=p3->next;
        p2=p1->next;
        while (p2!=p)
        {
            if ((p1->num )>(p2->num))
            {
                p1->next=p2->next;
                p2->next=p1;
                p3->next=p2;

                p3=p2;
                p2=p1->next;

            }
           else
            {
                p3=p1;
                p1=p2;
                p2=p2->next;
            }
        }
  p=p1;
    }
    while (p->next!=&t)
    {
        p=p->next;
    }
    p->next=NULL;
    return h.next;
}
搜索更多相关主题的帖子: next return 
2013-03-06 10:45
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
得分:10 
p->next表示(*p).next  

struct stu  *sort_xuehao (struct stu  *head)  //     按学号排序
{
    struct stu  *p,*p1,*p2,*p3;
    struct stu  h, t;
    if (head == NULL) return NULL;
    h.next=head;
    p=&h;
    while (p->next!=NULL)
    {
        p=p->next;
    }
这看不懂的
2013-03-06 11:07
若逝
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-6
得分:0 
回复 2楼 zhou31146001
额。。请问是啥意思??没看懂。。
2013-03-06 12:28
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
得分:10 
回复 2楼 zhou31146001
p=&h;
    while (p->next!=NULL)
    {
        p=p->next;
    }
检查传入的学号是不是最后一个,不是的话,指向下一个学号。
2013-03-06 13:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-399868-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.824066 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved