我正在学习Scala。但是,在练习中,我遇到了Stack的一些问题。如何从堆栈中删除第二个元素。我必须删除第二个元素并放回顶部元素。
谢谢你的提前
答案 0 :(得分:5)
我不知道scala,但通常你会这样做
variable = pop()
pop()
push(variable)
保存第一个元素,将第二个元素弹出到必杀技 然后再将第一个元素推到顶部
答案 1 :(得分:2)
我对Scala一无所知,但堆栈是堆栈。
在堆栈上调用pop
并将返回的值分配给临时变量,然后再次弹出并推回您使用第一个调用pop
分配的元素。
伪代码:
tempVar = stack.pop();
stack.pop();
stack.push(tempVar);
答案 2 :(得分:1)
Stack和List之间没有太大区别,Scala API文档也说明了这一点。
如果使用List,则采用不同的方法:
val result: (Option[T], List[T]) = myList match {
case first :: x :: rest => (Some(x), first :: rest)
case list => (None, list)
}
结果的显式类型是为了清楚起见。这样做的好处是,如果没有第二项,你不会抛出异常,这是如何使用模式匹配的一个很好的例子。