[英]Using Boolean for left/right in twostack
我在學校有任務。 這涉及使用布爾值 true/false 創建一個 twostack 數組,以便在堆棧中向右/向左訪問。
我有點綠色使用堆棧! 並且不知道如何實現這個布爾值 s*t
有小費嗎? 未完成的代碼摘錄如下:...
/**
* Stacks of top-element of given stack and return it.
* @param right true if right stable, false if left stable
* @throws TwostackEmptyException if stable is empty
*/
@Override
public Object pop(Boolean right) throws TwostackEmptyException {
return null;
}
/**
* Return top element of given stack, but doesnt remove it.
* @param right true if right, false if left
* @throws TwostackEmptyException if stacks empty.
*/
@Override
public Object peek(Boolean right) throws TwostackEmptyException {
return null;
}
讓我們使用制作兩棧數組的基本形式; 采用常規數組並將其“拆分”成兩半。
如果您的數組的最大大小為 N,則數組的“左側”從“array[0]”延伸到“array[n/2]”(中間標記。)
“右側”將從“array[n/2]”到“array[n-1]”(結尾)。
例如,如果我們想將一輛玩具車放入“ToyCollection”數組的左側,那么大小為 10? 然后我們就可以把它放入“ToyCollection[0-4]”,前半部分。 我們只將動作人偶放入插槽“ToyCollection[5-9]”。
請注意,我們並不是真的將數組一分為二,而是告訴自己我們不會將某些項目放在某些插槽中。
那么如何使用布爾值呢? 對於我上面的例子,假設我們有一個布爾值表示“WantToyCars”。 如果此 bool 為 True,則我們只想訪問數組的左側。
因此,讓我們返回其中的一部分。 拆分數組的方法有多種,但我將僅使用所有數組都具有的內置“copyOfRange”函數。 一些偽代碼來說明這個想法;
public Toy[] getCars(Toy[] ToyCollection, boolean WantToyCars) {
if (WantToyCars) {
Toy[] ToyCars = Arrays.copyOfRange(ToyCollection, 1, (ToyCollection.length / 2));
return ToyCars;
}
}
如果這符合你的任務結構,那么我認為這會成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.