`
iluoxuan
  • 浏览: 579977 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

3:Bag单链表实现

 
阅读更多

1: 简单的单链表 

不是基于数组

 

  

package com.algorithm.common;

import java.util.Iterator;

/**
 * 单链表 (只是用于添加数据)
 * @author lijunqing
 */
public class Bag<Item> implements Iterable<Item> {

    private int N;

    private Node first;

    private class Node {

        private Item item;

        private Node next;
    }

    public Bag() {
        N=0;
        first=null;
    }

    public boolean isEmpty() {
        if(N == 0) {
            return true;
        }
        return false;
    }
    
    /**
     * 读出来的与add的相反
     * @param item
     */
    public void add(Item item) {
        Node oldFirst = first;
        first = new Node();
        first.item = item;
        first.next = oldFirst;
        N++;
    }

    private class ListIterator implements Iterator<Item> {

        private Node current=first;

        @Override
        public boolean hasNext() {
            return current != null;
        }

        @Override
        public Item next() {
            Item item=current.item;
            current=current.next;
            return item;
        }

        @Override
        public void remove() {
            throw new UnsupportedOperationException();
        }
    }
    
    public static void main(String[] agrs){
        Bag<String> b = new Bag<String>();
        b.add("dd");
        b.add("11");
        b.add("dd");
        b.add("23");
        
        Iterator<String> i = b.iterator();
        while(i.hasNext()){
            System.out.println(i.next());
        }
        
    }

    @Override
    public Iterator<Item> iterator() {
        return new ListIterator();
    }

}

 

和list区别 :  list 添加顺序和读出顺序是相同的

分享到:
评论

相关推荐

    Python开发的十个小贴士和技巧及长常犯错误

    你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10] 大多初学者,根据之前语言的经验会大概这样来做 bag = [1, 2, 3, 4, 5] for i in range(len(bag)): bag[i]...

    打开 bag 文件

    理解bag文件格式的关键在于掌握其内部的组织方式和数据结构,这通常需要借助专门的工具或者编程语言来实现。 **压缩包子文件的文件名称列表:ExtractorExt.dll、Extractor.exe、Scanning Results、Languages、...

    python rosbag 模块

    10. ** ROS版本兼容性**:不同的ROS版本可能对rosbag有略微不同的实现,因此在不同版本间迁移时,需要确保bag文件的兼容性。 总的来说,Python的rosbag模块是ROS系统中不可或缺的一部分,它提供了强大的数据记录和...

    BOW(Bag of words,词袋)模型代码实现

    **正文** 在计算机视觉领域,BOW(Bag of Words,词袋模型)是一种广泛应用的图像...在给定的“Bag-of-visual-words”文件中,可能包含了实现这一过程的代码和示例,供学习者理解和实践BOW模型在SIFT特征上的应用。

    bag解压工具中文简体版

    3. **浏览和选择**:软件会显示出bag文件内部的资源结构,用户可以逐层浏览,找到需要解压的特定文件或文件夹。 4. **解压操作**:选择要解压的文件后,用户可以选择解压的路径,然后点击“解压”或“提取”按钮...

    ccl-wallet:Cocol Network的官方钱包:money_bag::money_bag::money_bag:

    ccl-wallet:Cocol Network的官方钱包:money_bag::money_bag::money_bag:

    Python库 | bag-2.1.0-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:bag-2.1.0-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    bag2video:将rosbag中的图像转换为视频

    由于OpenCv无法以可变帧速率进行编码,因此可通过复制帧来实现可变帧速率。 这会产生非常大的文件,应使用ffmpeg之类的文件重新编码。用法 usage: bag2video.py [-h] [--outfile OUTFILE] [--precision PRECISION] ...

    Bag的实现

    "Bag的实现"这个主题主要涉及的是数据结构中的一个特殊类型——“ Bag”或“Multiset”,它在计算机科学中是一种允许元素重复的集合。在Java编程中,我们可以通过自定义类或者使用已有的库来实现Bag。这篇博客的文章...

    ROS机器人技术-rosbag详细使用教程!.pdf

    3. **修复 (Reindexing)**: - 当 bag 文件在不同系统之间转移导致错误时,可以使用 `rosbag reindex &lt;bag_file.bag&gt;` 进行修复。但需要注意,此操作可能会导致部分数据丢失。 除了上述基础操作,`rosbag` 还提供...

    rosbag2_2023_06_19-12_59_33_16.db3

    rosbag2_2023_06_19-12_59_33_16.db3

    matlab运动目标提取代码-bag_extractor:bag_extractor

    bag提取程序主要负责提取BOS bag文件的数据并生成相应的数据目录。 深度图像处理程序用于使用多视图转换和修复算法在标准相机视图中获得完整的密集深度图像。 1.先决条件 1.1 ROS和Python 有两种安装ROS的方法: ...

    hibernate bag 集合映射

    3. **Java实体类**:包含bag属性的实体类将定义相关的方法,如getter和setter。 4. **操作示例**:如何在Java代码中添加、删除和查询bag集合中的元素。 通过以上信息,我们可以深入了解Hibernate的bag集合映射,...

    YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for

    bag-of-freebies 相关工作 实时目标检测器 目前最先进的实时目标检测算法主要基于YOLO和FCOS。 能够成为最先进的实时目标检测器的算法通常需要以下特征: (1)更快更强的网络架构 (2)一种更有效的特征集成方法...

    编码学习:코딩스터디용리터디용지토리

    2021年2月2日 참여자 02/01 02/02 02/03 02/04 02/05 02/06 02/07 02/08 ... :money_bag: :money_bag: :money_bag: :money_bag: :money_bag: :money_bag: :money_bag: ... :money_bag

    KITTI数据集图像序列转换成rosbag文件

    该脚本可以将KITTI数据集中的图像序列换转成ROS中的.bag文件格式。具体使用方法代码中给了示例。例如:将双目数据转换成.bag文件: python img2bag_kitti_StereoBag.py /home/Andy/my_workspace/Dataset/KITTI/01 ...

    bag_box:荷兰地籍 (`BAG`) 的 PostGIS 数据库的 Vagrant 配置

    BAG箱该存储库包含在流浪箱上启动并运行荷兰地籍 ( BAG ) 的 PostGIS 数据库所需的配置文件。 准备好后,您可以通过从主机访问它。用法确保您安装了最新版本的和 。 克隆此存储库并导航到该文件夹​​。 运行vagrant...

    SDA-Lab1:ADT Bag-2动态阵列

    - `Bag.cpp`:实现了动态数组Bag的代码,包括上述操作的具体实现。 - `main.cpp`:测试用例,用于验证Bag的正确性和性能。 通过这个实验,你将深入理解动态数组的工作原理,并学习如何设计和实现一个高效的数据结构...

    KITTI数据集 转换为ROSBAG格式,且补充了点云格式转换部分,比原始的全面一些

    3. **消息转换**:将原始数据转换为ROS消息格式。对于LIDAR数据,可能需要将其转换为`sensor_msgs/PointCloud2`消息;图像数据则转换为`sensor_msgs/Image`消息。 4. **时间同步**:由于真实世界中,不同传感器数据...

Global site tag (gtag.js) - Google Analytics