Bag(背包)的Java实现

前言
  这是我学习算法以来第一次接触到这种数据结构,虽然有很多疑惑,但是还是耐着性子码一下吧。毕竟要贯彻“觉知此事要躬行”的精神。
  不罗嗦,上代码。


代码
新建Bag类所需的节点类

public class BagNode
{
    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
    {
        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 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
    {
        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;
        }

    }
}

你可能感兴趣的:(Bag(背包)的Java实现)