查找最大元素低于列表中的平均值

时间:2014-12-17 15:48:41

标签: list max average doubly-linked-list

我想找到的max元素低于所有元素的平均值。找到最大元素并不难:

int max (node *p) 
{
    int current = p->data;
    int next;
    if (p->next == NULL)   //The value at this node is obviously larger than a non-existent value 
    {    
        return current;
    } 
    else 
    {        
        next = max(p->next); //Recur to find the highest value from the rest of the LinkedList
    }
    if(current > next)        //Return the highest value between this node and the end of the list 
    {
        return current;
    } 
    else 
    {
        return next;
    }
}

但要从平均值中找到最大值对我来说很难。是的,我可以创建一些其他函数来处理列表的大小和平均值,但是可以在单个函数中完成所有这些操作。所有帮助将不胜感激。提前感谢您的时间。

1 个答案:

答案 0 :(得分:0)

最简单的方法是两次通过:

  • 首先,编写一个函数来计算整个列表的平均值,
  • 然后使用略微修改的最大函数来查找低于给定阈值的最高值
  • 合并两个
  • 利润