topic requirement:
寵物、狗和貓的類如下:
public class pet
public string getpettype()
}public class dog extends pet
}public class cat extends pet
}
實現乙個貓狗佇列,要求如下:
1.可以呼叫add()方法,將cat類和dog類新增到佇列中;
2.可以呼叫pollall()方法,將佇列中的所有例項按入佇列的順序依次彈出;
3.可以呼叫pollcat()方法,將佇列中的所有cat物件例項按入佇列的順序依次彈出;
4.可以呼叫polldog()方法,將佇列中的所有dog物件例項按入佇列的順序依次彈出;
5.可以呼叫isempty()方法,判斷對佇列是否為空;
6.可以呼叫iscatempty()方法,判斷佇列是否有cat物件例項;
7.可以呼叫isdogempty()方法,判斷佇列是否有dog物件例項;
thoughts:
佇列是先進先出,由於要存放兩種不同的物件,因此可以用兩個佇列分別存放dog物件和cat物件。由於要維持進入佇列的順序,
在不改變原有類的情況下,我們可以構造乙個類enterpetqueue,在類中引入計數變數,來記錄物件的入隊順序。
public class dogcatqueue1
public string getpettype()
} public static class dog extends pet
} public static class cat extends pet
} public static class petenterqueue
public pet getpet()
public long getcount()
public string getenterpettype()
} public static class dogcatqueue
public void add(pet pet) else if (pet.getpettype().equals("cat")) else
} public pet pollall() else
} else if (!this.dogq.isempty()) else if (!this.catq.isempty()) else
} public dog polldog() else
} public cat pollcat() else
throw new runtimeexception("cat queue is empty!");
} public boolean isempty()
public boolean isdogqueueempty()
public boolean iscatqueueempty()
} public static void main(string args)
while (!test.isempty())
}}
reference:左神
encouragement:
趁著都還在,珍惜身邊的人,不要等失去的時候才後悔,我花了幾年的時間才真正搞清楚這句話的含義。
程式設計 Week4 作業
題意 zjm 有 n 個作業,每個作業都有自己的 ddl,如果 zjm 沒有在 ddl 前做完這個作業,那麼老師會扣掉這個作業的全部平時分。所以 zjm 想知道如何安排做作業的順序,才能盡可能少扣一點分。請你幫幫他吧!input 輸入包含t個測試用例。輸入的第一行是單個整數t,為測試用例的數量。每個...
演算法 貓狗佇列
題目要求 實現一種狗貓佇列的結構,要求如下 使用者可以呼叫add方法將cat類或dog類的例項放入佇列中 使用者可以呼叫pollall方法,將佇列中所有的例項按照進佇列的先後順序依次彈出 使用者可以呼叫polldog方法,將佇列中dog類的例項按照進佇列的先後順序依次彈出 使用者可以呼叫pollca...
貓狗佇列 C 實現
實現一種貓狗佇列的結構,要求如下 1.使用者可以呼叫add方法將cat類或者dog類的例項放入佇列中 2.使用者可以呼叫pollall方法,將佇列中所有的例項按照進佇列的先後順序依次彈出 3.使用者可以呼叫polldog方法,將佇列中的dog類的例項按照進佇列的先後循序一次彈出 4.使用者可以呼叫p...