分別維護(hù)dog和cat隊(duì)列、進(jìn)入隊(duì)列時(shí)加一個(gè)計(jì)數(shù)count
參考:
1、異常判斷,比如傳入的不是dog或cat
2、可用鏈表結(jié)構(gòu)、避免掉抽離數(shù)據(jù)的排序問題
dog和Cat兩個(gè)類,繼承于Pet大類
1、用add方法將cat類和dog類的實(shí)例放入隊(duì)列中
a = []
a.append O(1)
2、調(diào)用pollAll方法,將隊(duì)列中所有實(shí)例按進(jìn)隊(duì)列的先后順序依次彈出
比較貓狗index,讀出來小的,更新recond,
3、調(diào)用pollDog方法,將隊(duì)列中dog實(shí)例按照進(jìn)隊(duì)列的先后順序依次彈出
根據(jù) self.cat_recond/self.dog_recond, 把數(shù)據(jù)取出來,更新recond,維護(hù)recond
4、調(diào)用pollCat方法,依次彈出cat
同上
5、isEmpty()方法,檢查是否還有dog或cat
6、7、isDogEmpty()、isCatEmpty()方法同上
用self.cat_recond=[cat在隊(duì)列的index]
self.dog_recond=[dog在隊(duì)列的index]
實(shí)例進(jìn)入時(shí)記錄,
判斷該隊(duì)列長(zhǎng)度O(1)
感覺沒什么不好的