背包实现
2016-09-02 00:03
260 查看
背包是一种不支持从中删除元素的集合数据类型,它的目的就是帮助用例手机元素并迭代遍历所有收集到的元素。理解背包的概念,可以想象一个非常喜欢收集弹子球的人,他将所有的弹子球都放在一个背包里,一次一个,并且会不时在所有的弹子球都放在一个背包里,一次一个,并且会不时在所有的弹子球中寻找某一颗拥有某种特点的弹子球。
import java.util.Iterator;
public class Bag<Item> implements Iterable<Item>
{
private Node first;
private class Node
{
Item item;
Node next;
}
public void add(Item item)
{
Node oldfirst = first;
first = new Node();
first.item = item;
first.next = oldfirst;
}
public Iterator<Item> iterator()
{
return new ListIterator();
}
private class ListIterator implements Iterator<Item>
{
private Node current = first;
public boolean hasNext()
{
return current != null;
}
public Item next()
{
Item item = current.item;
current = current.next;
return item;
}
}
public static void main(String[] args)
{
Bag<String> b = new Bag<String>();
b.add("aaa");
b.add("bbb");
b.add("ccc");
for(Iterator<String> iter=b.iterator();iter.hasNext()==true;)
{
System.out.println(iter.next());
}
}
}
输出
Ccc
Bbb
aaa
和栈如出一辙。不再做小结和分析。
import java.util.Iterator;
public class Bag<Item> implements Iterable<Item>
{
private Node first;
private class Node
{
Item item;
Node next;
}
public void add(Item item)
{
Node oldfirst = first;
first = new Node();
first.item = item;
first.next = oldfirst;
}
public Iterator<Item> iterator()
{
return new ListIterator();
}
private class ListIterator implements Iterator<Item>
{
private Node current = first;
public boolean hasNext()
{
return current != null;
}
public Item next()
{
Item item = current.item;
current = current.next;
return item;
}
}
public static void main(String[] args)
{
Bag<String> b = new Bag<String>();
b.add("aaa");
b.add("bbb");
b.add("ccc");
for(Iterator<String> iter=b.iterator();iter.hasNext()==true;)
{
System.out.println(iter.next());
}
}
}
输出
Ccc
Bbb
aaa
和栈如出一辙。不再做小结和分析。
相关文章推荐
- 完全背包问题(Java实现)
- 背包问题经典实现方法
- 0/1背包问题实现
- 实现Torchlight(火炬之光)的背包UI效果
- 0-1背包问题的递归实现与非递归实现
- 分支限界法实现背包问题
- dynamic programming --knapsack problem 背包问题(c++实现)
- 背包问题-java实现
- 背包问题之贪心算法实现
- 用贪心算法实现的背包问题(java语言)
- 0-1背包问题经典算法(递归实现)
- 贪心法和回溯法 求解“背包、0/1背包问题”——Java 实现
- 用c实现背包问题(贪心)
- 0-1背包问题经典算法(二维数组实现)
- 01背包的回溯方法实现(JAVA版本)
- 简单背包(无价值总和)问题的实现。
- 用贪心算法实现的背包问题
- PKU 3211 JAVA 实现 背包问题 一直Runtime Error 无解 留下问题 以后再看
- 背包算法(Java 实现)
- 简单的背包问题--java递归实现