[英]Implementing Patience Sort with LinkedList
根據我的注釋,耐心排序將數據划分為多個bin,然后將這些bin的內容合並為一個完整列表。
我想我已大致了解如何執行此操作,但要求之一是為ints
列表, stacks
列表以及stack
本身提供一個LinkedList
。
所以令我感到困惑的是,當LinkedList
接受ints
而不是stacks
時,我如何add
每個stack
add
到LinkedList
。 我可以將LinkedList
更改為接受stacks
,但是當我最初創建要在main
方法中排序的列表時,它是使用ints
完成的。
我知道我缺少明顯的東西,但是我看不到如何做到這一點,有什么建議嗎? 我在下面包括了我的sort方法,並注釋了一些有關如何完成事情的代碼(但我不確定是否正確)。
public void sort() {
LinkedList listOfStacks = new LinkedList();
//LinkedList<Stacks> listOfStacks = new LinkedList()<Stacks>;
int [] listOfInts = {8, 5, 3, 4, 1, 2, 6, 9, 7};
for(int i = 0; i < listOfInts.length; i++) {
LinkedList stack = new LinkedList();
// No stacks initially, create first stack,
// and add first element
if(listOfStacks.getSize() == 0) {
// listOfStacks.add(stack);
}
for(int j = 0; j < listOfStacks.getSize(); j++) {
if(stack.getSize() == 0) {
stack.push(listOfInts[i]);
// listOfStacks.add(stack);
}
else if(stack.peek() < listOfInts[i]) {
stack.push(listOfInts[i]);
// listOfStacks.add(stack);
break;
}
else {
LinkedList newStack = new LinkedList();
newStack.push(listOfInts[i]);
// listOfStacks.add(newStack);
}
}
}
}
與其嘗試將堆棧直接添加到鏈接列表中,不如將堆棧中的值彈出到鏈接列表中,直到堆棧為空。
或者,如果您可以聲明堆棧的鏈接列表以接受其他鏈接列表,而不是ints:
LinkedList<LinkedList<Integer>> listOfStacks = new LinkedList<LinkedList<Integer>>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.