-3

我需要从链表中删除最小的元素值。喜欢

{8,4,7,2,9,4,5,3} 

变成:

{8,4,7,9,4,5,3}

我写了这个:

public void RemoveMin() {
    T min = list.getInfo();
    for (int i = 0; i < 7; i++) {
        if (list.getLink() < min)
            min = (T) list.getLink();
        else
            continue;
    }
} 
4

2 回答 2

3

你可以这样做:

public void RemoveMin()
{
   int nbElements = list.size()
   int lowerValueIndex = 0
   for (i = 0; i < nbElements; i++)
   {
      if(list.get(i) < list.get(lowerValueIndex)
      {
         lowerValueIndex = i;
      }
   }
   list.remove(lowerValueIndex);
}

首先用第一个元素初始化最小值。然后在每个元素处,将值与已经找到的较低值进行比较。如果新的较低,则采用新的 lowerValueIndex。最后,您只需要删除最低元素。请注意,使用此解决方案,您的数据必须直接可比较

于 2013-05-19T09:49:06.260 回答
0

如果您的问题是如何删除元素属于泛型 T 的列表的最小元素,那么您应该执行以下操作:

  1. 您需要有一个比较器,您可以通过它比较元素以找到最小值
  2. 您必须遍历列表才能找到该最小元素
  3. 您必须从列表中删除此元素。
于 2013-05-19T09:49:34.557 回答