Redian新闻
>
iterator 实现 如何 peek(),pop()?
avatar
iterator 实现 如何 peek(),pop()?# JobHunting - 待字闺中
h*o
1
比如
A={1,2,3,4,5};
peek()=1;
pop()=1;
peek()=2;
pop()=2;
peek()=3;.........
avatar
j*y
2
怎么 定义 peek(), pop() 阿
stack 里面的 pop()吗? peek 和 stack里面的 top()是一样的吗?

【在 h*********o 的大作中提到】
: 比如
: A={1,2,3,4,5};
: peek()=1;
: pop()=1;
: peek()=2;
: pop()=2;
: peek()=3;.........

avatar
c*a
3
pop了2, 3不见了?
avatar
h*o
4
嗯,看例子应该是跟stack的一样的,
peek()就是top

【在 j*****y 的大作中提到】
: 怎么 定义 peek(), pop() 阿
: stack 里面的 pop()吗? peek 和 stack里面的 top()是一样的吗?

avatar
t*h
5
have a tmp variable to next element?

【在 h*********o 的大作中提到】
: 比如
: A={1,2,3,4,5};
: peek()=1;
: pop()=1;
: peek()=2;
: pop()=2;
: peek()=3;.........

avatar
j*y
6
这个 iterator 的 api怎么用呢 ?
似乎像是一个 stack, 但是 stack是没有 iterator的,
可以用一个 vector来存储, vector 可以 push_back 和 pop_back
这两个类似于 stack的 push 和 pop
有点confuse不知道如何call iterator 来 pop 和push
难道是说, 假设有个 iterator it, 我们可以call
it->peek(), it->pop() ?

【在 t*********h 的大作中提到】
: have a tmp variable to next element?
avatar
h*o
7
呵呵 typo
改过来了

【在 c*****a 的大作中提到】
: pop了2, 3不见了?
avatar
h*o
8
不知道是不是stack啊,给的例子就是这样,
像是数组啥的。。

【在 j*****y 的大作中提到】
: 这个 iterator 的 api怎么用呢 ?
: 似乎像是一个 stack, 但是 stack是没有 iterator的,
: 可以用一个 vector来存储, vector 可以 push_back 和 pop_back
: 这两个类似于 stack的 push 和 pop
: 有点confuse不知道如何call iterator 来 pop 和push
: 难道是说, 假设有个 iterator it, 我们可以call
: it->peek(), it->pop() ?

avatar
p*2
9
class Iterator[T](arr:Array[T]){
private[this] var pos=0
def peek()={
if(pos}

def pop()={
if(pos}

def reset(){
pos=0
}
}
object test2 extends App {
val arr=Array(1,2,3,4,5)
val it=new Iterator(arr)
println(it.peek())
println(it.pop())
println(it.peek())
println(it.pop())
println(it.peek())
println(it.pop())

}
avatar
j*y
10
二爷这个iterator 和 stack 好像是一样的?
class iterator == class stack ?

【在 p*****2 的大作中提到】
: class Iterator[T](arr:Array[T]){
: private[this] var pos=0
: def peek()={
: if(pos: }
:
: def pop()={
: if(pos: }
:

avatar
p*2
11

iterator 是immutable的吧?

【在 j*****y 的大作中提到】
: 二爷这个iterator 和 stack 好像是一样的?
: class iterator == class stack ?

avatar
j*y
12
何为 immutable ? sorry :)

【在 p*****2 的大作中提到】
:
: iterator 是immutable的吧?

avatar
p*2
13

我记得只能iterate不能改变吧

【在 j*****y 的大作中提到】
: 何为 immutable ? sorry :)
avatar
j*y
14
这样的话,你这里的 iterator 也提供了 pop()操作,也是改变了,是吧?

【在 p*****2 的大作中提到】
:
: 我记得只能iterate不能改变吧

avatar
p*2
15

数组没有被改变。还可以reset

【在 j*****y 的大作中提到】
: 这样的话,你这里的 iterator 也提供了 pop()操作,也是改变了,是吧?
avatar
j*y
16
明白了,你的这个 iterator就是一个没有 push操作的 stack, 是吧?

【在 p*****2 的大作中提到】
:
: 数组没有被改变。还可以reset

avatar
p*2
17

感觉iterator和stack还不是一回事。
不过这个题目的定义比较confusing
应该是hasNext, next比较好。

【在 j*****y 的大作中提到】
: 明白了,你的这个 iterator就是一个没有 push操作的 stack, 是吧?
avatar
c*t
18
同意,这道题里面pop和iterator next 感觉是一样的,没必要实现。
不过你用array来实现,感觉不合题意吧。我觉得extend Iterator,overwrite next
hasNext, remove, add pop and peek methods是正解。

【在 p*****2 的大作中提到】
:
: 感觉iterator和stack还不是一回事。
: 不过这个题目的定义比较confusing
: 应该是hasNext, next比较好。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。