数据结构化。
在前面插入值的方法:
工作正常。
createUserWithEmailAndPassword
在尾部插入值的方法-由于此行 public void insertLeft(Item item) {
if (size == deque.length){
resize(2 * deque.length);
}
deque[start] = item;
start++;
size++;
}
//end = deque.length - 1;
我该如何解决?
答案 0 :(得分:2)
假设数组的大小为10,当前具有3个值:
_ _ _ 1 2 3 _ _ _ _
^ ^
start end
如您所见,您的insertLeft
方法是错误的:
您的insertRight
方法错误:
end
值重新考虑您在做什么,例如resize()
方法可以处理数组包装的情况吗?
示例:
3 4 5 _ _ _ _ _ 1 2
^ ^
end start
如果您致电insertRight()
5次,您将得到:
3 4 5 X X X X X 1 2
^
start
end
对insertRight()
的第六次调用将触发resize()
,但是可以正确处理吗?例如。导致:
3 4 5 X X X X X Y _ _ _ _ _ _ _ _ _ 1 2
^ ^
end start
答案 1 :(得分:0)
deque.length - 1
返回最后一个变量的索引。您必须获得过去的成就:
deque[++end] = item;