| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 657 人关注过本帖
标题:动态链表插入排序如何插入了表尾
取消只看楼主 加入收藏
braveboy2008
Rank: 1
等 级:新手上路
威 望:1
帖 子:21
专家分:0
注 册:2008-10-14
收藏
 问题点数:0 回复次数:0 
动态链表插入排序如何插入了表尾
//作业的排序

SeQueue& SeQueue::order()
{
    JCB *t, *p, *pre, *old;

    old = front->next;  //将原链表头结点的下一个结点作为新结点
    front->next = NULL; //截断旧头结点作为新链表头结点
    
    while (old != NULL)     //原表不为空时进行排序
    {
        t = old;            //取原表头结点
        old = old->next;     //指向原表下一个结点
        p = front;         //新表移动指针
        pre = front;       //保存移动时的前驱

        while (t->length >= p->length && p != NULL) //进行比较
        {
            pre = p;
            p = p->next;
        }

        if (p == NULL)    //插入到表尾     
        {
            pre->next = t;
            t->next = NULL;            
        }
        else
        {
            if (p == pre)        //插入到表头
            {
                t->next = p;
                front = t;
            }
            else                //插入到表中间
            {
                pre->next = t;
                t->next = p;
            }
        }

    return *this;
}

请大家分析一下当插入到表尾时有什么问题
搜索更多相关主题的帖子: 链表 动态 
2008-10-18 23:53
快速回复:动态链表插入排序如何插入了表尾
数据加载中...
 
   



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

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