演算法 12貓狗佇列

2022-09-14 09:03:12 字數 3047 閱讀 7416

實現一種貓狗佇列的結構,要求如下:

1. 使用者可以呼叫 add 方法將 cat 或者 dog 放入佇列中

2. 使用者可以呼叫 pollall 方法將佇列中的 cat 和 dog 按照進佇列的先後順序依次彈出

3. 使用者可以呼叫 polldog 方法將佇列中的 dog 按照進佇列的先後順序依次彈出

4. 使用者可以呼叫 pollcat 方法將佇列中的 cat 按照進佇列的先後順序依次彈出

5. 使用者可以呼叫 isempty 方法檢查佇列中是否還有 dog 或 cat

6. 使用者可以呼叫 isdogempty 方法檢查佇列中是否還有 dog

7. 使用者可以呼叫 iscatempty 方法檢查佇列中是否還有 cat

第一行輸入乙個整數 n 表示 使用者的操作總次數。

以下 n行 每行表示使用者的一次操作

每行的第乙個引數為乙個字串 s,若 s = 「add」, 則後面接著有 「cat x」(表示貓)或者「dog x」(表示狗),其中的 x 表示貓狗的編號。

對於每個操作:

若為 「add」,則不需要輸出。

以下僅列舉幾個代表操作,其它類似的操作輸出同理。

若為 「pollall」,則將佇列中的 cat 和 dog 按照進佇列的先後順序依次彈出。(fifo),格式見樣例。

若為 "isempty",則檢查佇列中是否還有 dog 或 cat, 為空則輸出 「yes」, 否則輸出 「no」。

輸入:

11add cat 1add dog 2pollall

isempty

add cat 5isdogempty

pollcat

add dog 10add cat 199polldog

pollall

輸出:cat 1dog 2yes

yescat 5dog 10cat 199

用兩個佇列來分別存放貓狗元素,再通過count的大小來判斷入整個佇列的次序;

import

j**a.io.ioexception;

import

j**a.util.linkedlist;

import

j**a.util.queue;

import

j**a.util.scanner;

//題目中給定的類

class

pet

public

string getpettype()

public

intgetx()

}class dog extends

pet}

class cat extends

pet}

//可以為不同的例項蓋上時間戳的新的類

class

petenterqueue

public

pet getpet()

public

long

getcount()

public

string getenterpettype()}//

貓狗佇列

class

dogcatqueue

public

void

add(pet pet)

else

if(pet.getpettype().equals("cat"))

else

}//注意彈出的不能是自己定義的petenterqueue

public

pet pollall()

else

} else

if(!this

.dogq.isempty())

else

if(!this

.catq.isempty())

else

}public

dog polldog()

else

}public

cat pollcat()

else

}public

boolean

isempty()

public

boolean

isdogqueueempty()

public

boolean

iscatqueueempty()

}public

class

main

else

if(who.equals("dog"))

else

break

;

case "pollall":

while(!dogcatqueue.isempty())

break

;

case "polldog":

while(!dogcatqueue.isdogqueueempty())

break

;

case "pollcat":

while(!dogcatqueue.iscatqueueempty())

break

;

case "isempty":

if(!dogcatqueue.isempty())

else

break

;

case "isdogempty":

if(!dogcatqueue.isdogqueueempty())

else

break

;

case "iscatempty":

if(!dogcatqueue.iscatqueueempty())

else

break

; }

}//最後的輸出只能由乙個回車,所以是system.out.println(res.substring(0,res.length()-1));或者下面這個

system.out.print(res);

}}

演算法 貓狗佇列

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

貓狗佇列 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...