C 排序链表末尾的平均值

C 排序链表末尾的平均值,c,sorting,linked-list,C,Sorting,Linked List,我必须编写一个函数,用特定的方式对列表进行排序,我有一个单独的整数链表,我必须找到列表中所有数字的平均值,并将高于平均值的所有节点放在列表的末尾。我无法创建新列表,我必须处理给定的列表。我怎样才能做到?我必须做这样的事情 计算平均数 查找高于平均值的节点将数据保存在其中并删除 mallocnewnode并将数据添加到newnode,并将其链接到列表的末尾 重复 这个方法对吗?我是否可以取消给定节点的链接并将其添加到列表的末尾,这样就不需要删除和重新创建了?请阅读:!你能举一个你试过的例子吗?您在

我必须编写一个函数,用特定的方式对列表进行排序,我有一个单独的整数链表,我必须找到列表中所有数字的平均值,并将高于平均值的所有节点放在列表的末尾。我无法创建新列表,我必须处理给定的列表。我怎样才能做到?我必须做这样的事情

  • 计算平均数
  • 查找高于平均值的节点将数据保存在其中并删除
  • mallocnewnode并将数据添加到newnode,并将其链接到列表的末尾
  • 重复

  • 这个方法对吗?我是否可以取消给定节点的链接并将其添加到列表的末尾,这样就不需要删除和重新创建了?

    请阅读:!你能举一个你试过的例子吗?您在哪里遇到问题或被阻止?如果您所做的只是重新排列数据,您不一定需要创建新的链接,它们的指针可以改变它们指向的内容。首先,绘制一个函数所涉及的步骤图,该函数包含任何链接并将其移动到末尾。关于您的问题,更具体地说:总之,您说您希望获取高于平均值的所有节点,并将它们推到列表的末尾。但是你希望他们是怎样的,在列表的末尾?你想按找到它们的顺序排列吗?是否要按递增顺序将其排序?降序?还是没关系?Malloc很贵。由于您只移动节点,我认为只更新指针的引用(如果高于平均值,则将节点移动到列表的末尾)会更有效率。如何做到这一点?这取决于您的列表实现,但如果您有“下一步”“指针,这是一个很好的开始。要完成@leonardo所说的内容,您可以更改找到的节点的值,并更新
    下一个
    指针的引用。