早八睡不醒午觉睡不够的程序猿 2023-03-29 21:32 采纳率: 57.1%
浏览 98
已结题

C语言单链表:升序排列函数

C语言单链表:这是一个将链表元素进行升序排列的函数,算法是我自己想出来的,具体的思路是:创建一个新链表,找到原链表中数据域最小的结点插入新链表中,再在原链表中将该结点删除。重复上述步骤,直到原链表为空则停止操作,此时的新链表为升序排列的链表。但将这个思路转化为程序时,不知道哪错了。请各位小伙伴帮忙看看,谢谢!


```c
void sort(polynomial* L)//排序函数
{
    polynomial* NewL = (polynomial*)malloc(sizeof(polynomial));
    polynomial* np = NewL;
    polynomial* r = NULL;
    polynomial* s = NULL;
    while (1)
    {
        polynomial* q = L;
        polynomial* p = L->next;
        if (!p)
            break;
        double min = p->coef;
        r = q;
        s = p;
        while (p)//找到多项式中系数最小的项
        {
            if (p->coef < min)
            {
                min = p->coef;
                r = q;
                s = p;
            }
            p = p->next;
            q = q->next;
        }
        r->next = s->next;//将链表中系数最小的项删除
        np->next = s;//将链表中系数最小的项插入新链表的表尾
        np = np->next;//将新链表的尾指针后移一位
    }
    np->next = NULL;
    L = NewL;
}

```

  • 写回答

3条回答 默认 最新

  • 热爱跑步的恒川 2023年新星计划导师 2023-03-29 21:46
    关注

    报错信息发一下

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月18日
  • 创建了问题 3月29日

悬赏问题

  • ¥60 db2move nlzxams import 导出db2备份数据报错
  • ¥15 关于#python#的问题:全文总结功能咨询
  • ¥15 俄罗斯方块中无法同时消除多个满行
  • ¥15 c#转安卓 java html
  • ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
  • ¥15 psfusion图像融合指标很低
  • ¥15 银河麒麟linux系统如何修改/etc/hosts权限为777
  • ¥50 医院HIS系统代码、逻辑学习
  • ¥30 docker离线安装mysql报错,如何解决?
  • ¥15 构建工单的总账影响在哪里查询或修改