Bag的实现
来源:互联网 发布:nginx检查配置文件 编辑:程序博客网 时间:2024/06/08 14:01
//Bag的实现package Algorithms;import java.util.Iterator;import java.util.NoSuchElementException;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class P98_Bag<Item> implements Iterable<Item> {private Node<Item> first; //链表的首结点private int n;private static class Node<Item>{//定义了结点的嵌套类private Item item;private Node<Item> next;}public P98_Bag(){first = null;n = 0;}public boolean isEmprty(){return first == null;}public int size(){return n;}public void add(Item item){//和stack的push()方法完全相同Node<Item> oldfirst = first;first = new Node<Item>();first.item = item;first.next = oldfirst;n++;}public Iterator<Item> iterator(){return new ListIterator<Item>(first);}private class ListIterator<Item> implements Iterator<Item>{private Node<Item> current;public ListIterator(Node<Item> first){current = first;}@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn current != null;}@Overridepublic Item next() {// TODO Auto-generated method stubif (!hasNext()){throw new NoSuchElementException();}Item item = current.item;current = current.next;return item;}@Overridepublic void remove() {// TODO Auto-generated method stubthrow new UnsupportedOperationException();}}public static void main(String[] args) {// TODO Auto-generated method stubP98_Bag<String> bag = new P98_Bag<String>();while (!StdIn.isEmpty()){String item = StdIn.readString();bag.add(item);}StdOut.println("size of bag = " + bag.size()); for (String s : bag) { StdOut.println(s); }}}
0 0
- Bag的实现
- bag-of-words model的java实现
- 基于静态数组的容器类bag实现
- 基于链表的容器类bag实现
- 数据结构实现之Bag背包
- java 实现Bag(单链表)
- hibernate 中的bag 的用法
- Bag of Words/Bag of Features的Matlab源码发布
- 栈(Stack)、队列(Queue)与包(Bag)的实现
- matlab+VC 实现Bag of features
- Bag of words(matlab实现)
- NOI 2006 - 神奇的口袋 Bag
- Set、Bag、List、Map的映射方式
- hibernate中的 bag--解释的太好了.
- 关于bag of words 的初步理解
- hibernate中的 bag--解释的太好了.
- 动态数组的容器类bag
- ros中bag包的恢复
- Android开发——View绘制过程源码解析(一)
- JavaScript简介及在HTML文件中的实现
- POJ2282 The Counting Problem:
- HTML5中<script>标签中的defer与async属性详解
- Lights
- Bag的实现
- Android几种数据存储方式的应用场景
- C++中一个由编译器决定结果的程序
- HDU4251 The Famous ICPC Team Again (主席树)
- [IOS 开发] iOS音频篇:使用AVPlayer播放网络音乐
- Linux内核分配内存的方式
- JAVA中对象的序列化
- 【URAL 1183】Brackets Sequence(区间DP+路径记录)
- N的阶乘