bin bin boolean如果bin已满

时间:2014-12-07 23:46:57

标签: java boolean bin-packing

我尝试使用Next Fit在线实现bin打包算法。所以我事先并不知道盒子的大小。无论如何,我有一个高度和宽度的Box类。一个列类,表示和堆栈的盒子和一个Truck类,它包含盒子的堆栈,如果卡车装满了,则为布尔值。

然而,当我在我的测试课程中时,我会生成一个盒子列表和一个用来装盒子的卡车列表。我将卡片添加到每辆卡车,当卡车几乎没有空间时,最后一个盒子试图加入,它不适合,所以布尔值isFull设置为true,但是进入方法然后丢失。如何将卡盒添加到卡车中,如果卡满了,请在下一辆卡车的电话中使用相同的盒子?

非常感谢

public void addBoxesNextFit(Box b) 
{   

    if(truck.isEmpty())      // easy first case
    {
        *make a new column*
        *add box to column and add column to truck*
    }
    else  
    {
        *Get the last column in list*

        if(remainingHeight in column > BoxesHeight && widthOftheColumn > boxesWidth)
        {
            *add box to column*
            *add column to truck*                               
            boxesInTruck++;                             
        }
        else if(there is enough space to make another column with the box)
        {
            *Make new column*   
            *add box to column and column to truck*        
            boxesInTruck++;                    
            widthofAllColumns += b.getWidth(); //update width of all columns
        }
        else
        {
            truckFull = true; // if u can't add the box to 1 of the columns and you can't create a new column
        }                     // then the truck is full
    }
}

0 个答案:

没有答案