Daily 貓狗佇列 」子類管理器「

2021-10-03 23:07:29 字數 1173 閱讀 4277

【題目】

class pet

string getpettype()

};class dog : public pet

};class cat : public pet

};

【分析】

這裡有乙個問題:既然已經貓和狗既然被封裝成同乙個型別,為什麼不直接用乙個佇列儲存即可?

因為我們還要考慮到上述7種操作種,4種分別對類進行操作,如果只用以乙個佇列進行儲存,複雜度將會大大提高。

這是很顯然的,具體問題具體分析,本題考察的就是特殊資料結構的設計

【實現】

/*貓狗佇列*/

#include#include#includeusing namespace std;

class pet

pet(string _type)

string getpettype()

};class dog : public pet

};class cat : public pet

};//將兩個同父類的子類(cat and dog)包裝起來

//方便用同種泛型的queue包裝起來

class petenterqueue

pet getpet()

long getcount()

string gettype()

}; //貓狗佇列類

class catanddogqueue

//建構函式中將容量設為0

//主要操作函式

//add:方法將cat類或dog類的例項放入佇列

void add(pet pet)

else

}else if(!m_dogqueue.empty())

else if(!m_catqueue.empty())

else

{cout<<"當前隊列為空隊,無法出隊!"<【此外】

pet pet;

dog dog;

pet *ppet=&dog;

*ppet=pet; //賦值成功

演算法 貓狗佇列

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

貓狗佇列 C 實現

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

演算法 12貓狗佇列

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