【发布时间】:2013-07-11 04:26:39
【问题描述】:
谁能告诉我我的 Stack 实现是否正确?
class LevelIter<Node> implements Iterable<Node> {
Stack<Node> s = null;
public LevelIter(Stack<Node> s) {
this.s = s;
}
public Iterator<Node> iterator(){
Iterator<Node> it = new Iterator<Node>() {
private int index = 0;
@Override
public boolean hasNext(){
return (index < s.size() && !s.isEmpty());
}
@Override
public Integer next(){
return (Integer) (s.pop()).data;
}
@Override
public void remove(){
s.remove();
}
};
return it;
}
}
其中Node是二叉树中的一个节点-
class Node{
int data;
Node left;
Node right;
public Node(int data){
this.data = data;
this.left = null;
this.right = null;
}
}
我主要称呼为--
LevelIter<Node> l = new LevelIter<Node>(s);
for(int n:l){
System.out.println(n);
}
【问题讨论】:
标签: java interface iterator stack