前言
这是我学习算法以来第一次接触到这种数据结构,虽然有很多疑惑,但是还是耐着性子码一下吧。毕竟要贯彻“觉知此事要躬行”的精神。
不罗嗦,上代码。
代码
新建Bag类所需的节点类
public class BagNode<Item>
{
Item item;
BagNode next;
}
add数据
public void add(Item item)
{
BagNode oldFirst = first;
first.item = item;
first.next = oldFirst;
}
迭代遍历
@Override
public Iterator iterator()
{
// TODO Auto-generated method stub
return new BagIterator();
}
private class BagIterator implements Iterator<Item>
{
BagNode node = first;
@Override
public boolean hasNext()
{
// TODO Auto-generated method stub
return node.next != null;
}
@Override
public Item next()
{
// TODO Auto-generated method stub
Item item = (Item) node.item;
node = node.next;
return item;
}
}
全部代码
import java.util.Iterator;
public class Bag<Item> implements Iterable
{
BagNode first;
public void add(Item item)
{
BagNode oldFirst = first;
first.item = item;
first.next = oldFirst;
}
@Override
public Iterator iterator()
{
// TODO Auto-generated method stub
return new BagIterator();
}
private class BagIterator implements Iterator<Item>
{
BagNode node = first;
@Override
public boolean hasNext()
{
// TODO Auto-generated method stub
return node.next != null;
}
@Override
public Item next()
{
// TODO Auto-generated method stub
Item item = (Item) node.item;
node = node.next;
return item;
}
}
}
网友评论