package DataStructureTestmain;
import DataStructureTestSinglyLinkedList.Node;
import DataStructureTestSinglyLinkedList.SinglyLinkedList;
public class SinglyLinkedList_average {
public static Integer[] random(int n)//返回产生n个随机数的数组
{
Integer[] element = new Integer[n];
for(int j=0;j<n;j++)
element[j]= new Integer((int) (Math.random()*100));
return element;
}
public static double averageExceptMaxMin(SinglyLinkedList<Integer> list)
{
if(list.isEmpty())
throw new IllegalArgumentException("不能对空单链表计算平均值。");
int sum=0,i=0,max=Integer.MIN_VALUE,min=Integer.MAX_VALUE;//i为数据记录器
Node<Integer> p= list.head.next;
while(p!=null)
{
int value= p.data.intValue();
sum+=value;
if(value>max)
max=value;
if(value<min)
min=value;
p=p.next;
i++;
}
if(i==1|i==2)
return (double)(sum/i);
return (double)(sum-max-min)/(i-2);
}
public static void main(String[] args)
{
SinglyLinkedList<Integer> list= new SinglyLinkedList<Integer>(random(10));
System.out.println("这些数字是"+list.toString());
System.out.print("去极端平均数"+averageExceptMaxMin(list));
}
}
用单链表进行求平均数(去掉最大数,最小数)
最新推荐文章于 2022-09-19 11:38:53 发布