演算法 貓狗佇列

2021-10-07 08:33:35 字數 2083 閱讀 1996

題目要求:

實現一種狗貓佇列的結構,要求如下:使用者可以呼叫add方法將cat類或dog類的例項放入佇列中;使用者可以呼叫pollall方法,將佇列中所有的例項按照進佇列的先後順序依次彈出;使用者可以呼叫polldog方法,將佇列中dog類的例項按照進佇列的先後順序依次彈出;使用者可以呼叫pollcat方法,將佇列中cat類的例項按照進佇列的先後順序依次彈出;使用者可以呼叫isempty方法,檢查佇列中是否還有dog或cat的例項;使用者可以呼叫isdogempty方法,檢查佇列中是否有dog類的例項;使用者可以呼叫iscatempty方法,檢查佇列中是否有cat類的例項。

寵物、狗和貓的類如下:

public class pet 

public string getpettypeo i return this.type;}

public class dog extends pet i public dogo i super("dog"):1}

public class cat extends pet i public cato i super("cat"):i}

#include#include#include#include//標準異常庫

using namespace std;

//貓狗佇列

//在c++中,類是不能加許可權修飾符的,只有類的成員或者繼承的時候才能加。

//這裡是public繼承,意思是pet中所有的訪問許可權在dog中不變,如果是peivate繼承,那麼是說pet中的所有成員變成dog的私有成員。

//在子類的建構函式中呼叫父類的有參建構函式就是下面這麼用cat():pet("cat"){};

class pet

pet(){}

string getpettype()};

class dog: public pet };

class cat: public pet};

/************************以上為題目給出原始介面***********************/

//使用乙個帶時間戳的pet類區分貓狗的進入順序

class pettimestamp

pet getpet()

long gettimestamp()

string getpettype()};

貓狗佇列類,這列面有兩個佇列,每個佇列的元素是加了時間戳的pet類

class catdogq

void push(pet pet);

pet popall();

dog popdog();

cat popcat();

bool isempty();

bool isdogempty();

bool iscatempty();

};//貓狗入隊,入隊的同時打上時間戳

void catdogq::push(pet pet)

由於是兩個佇列,因此要按照時間戳彈出,區分三種情況

pet catdogq::popall()

else

}else if(!dogq.empty())

else if(!catq.empty())

else }

dog catdogq::popdog()

else

throw runtime_error("error,empty dog queue!");

}cat catdogq::popcat()

else

throw runtime_error("error,empty cat queue!");

}bool catdogq::isempty()

bool catdogq::iscatempty()

bool catdogq::isdogempty()

int main()

{ catdogq cdq;

if(cdq.isempty())

cout<<"all queue is empty!"《個人

[1] 貓狗佇列**

[2] 個人主頁:

參考文獻

[1] c++——貓狗佇列:

演算法 12貓狗佇列

實現一種貓狗佇列的結構,要求如下 1.使用者可以呼叫 add 方法將 cat 或者 dog 放入佇列中 2.使用者可以呼叫 pollall 方法將佇列中的 cat 和 dog 按照進佇列的先後順序依次彈出 3.使用者可以呼叫 polldog 方法將佇列中的 dog 按照進佇列的先後順序依次彈出 4....

貓狗佇列 C 實現

實現一種貓狗佇列的結構,要求如下 1.使用者可以呼叫add方法將cat類或者dog類的例項放入佇列中 2.使用者可以呼叫pollall方法,將佇列中所有的例項按照進佇列的先後順序依次彈出 3.使用者可以呼叫polldog方法,將佇列中的dog類的例項按照進佇列的先後循序一次彈出 4.使用者可以呼叫p...

week 4 貓狗佇列

topic requirement 寵物 狗和貓的類如下 public class pet public string getpettype public class dog extends pet public class cat extends pet 實現乙個貓狗佇列,要求如下 1.可以呼叫a...