手写算法-FIFO

2023-11-01

一、思路

FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

二、双向链表版本

/**
 * put:
 * 首节点插入
 *
 * get:
 * 尾节点返回移除
 *
 */
public class FIFO {
    int size;
    MyDoubleList list = new MyDoubleList();

    public FIFO(int size) {
        this.size = size;
    }

    public void put(Object data) {
        list.addFirst(data);
    }

    public Object get() {
        Object data = list.getLast();
        list.removeLast();
        return data;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手写算法-FIFO 的相关文章

  • 系统安装部署系列教程(六):封装系统

    终于到了本系列的最核心一篇教程了 在这篇教程里我们来看看如何按需来封装系统 封装系统有很多作用 硬件厂商需要将自己的特性软件和驱动程序预装到系统中 企业用户需要集成KMS激活服务器 装机人员需要预装用户的常用软件 所有这些功能 都可以通过封

随机推荐

  • yearning

    Yearning 开发模式 手动部署 如有侵权 请联系我删除 环境准备 MySQL https www cnblogs com xinjing jingxin p 8025805 html Yearning git clone https
  • 【Matlab基础】一些常用函数收集

    stem函数 1 用法 stem Y 将数据序列Y从x轴到数据值按照茎状形式画出 以圆圈终止 如果Y是一个矩阵 则将其每一列按照分隔方式画出 stem X Y 在X的指定点处画出数据序列Y stem filled 以实心的方式画出茎秆 st
  • yolov6 win10环境配置详细过程

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 yolov6 下载 二 环境配置 三 测试环境 四 报错集合 前言 提示 这里可以添加本文要记录的大概内容 最近美团开源了yolov6 源码 准备体验下y
  • 韩国KT/LG/SK机房服务器比较

    众所周知 韩国就KT LG SK机房比较出名 那么三者之间有和区别呢 小编带大家分析一下 如有不对的地方还请多多指教 一 KT机房 KT机房采用中韩CN2专线与联通移动BGP线路 线路稳定不掉包 三网用户访问速度快而且速度和国内服务器没什么
  • 关于VAE中KL散度项的推导

    关于VAE中KL散度项的推导 最近在看 Variational AutoEncoder 其中论文 Auto Encoding Variational Bayes 中的Eq 10 怎么也推不出来 看了一下Appendix B 只给出了KL散度
  • 开发自己的脚手架(Rollup+Typescript)-(02)-(中间件模式)

    对于A gt b gt c这一类的流程事件 可以采用分解这些事件 当需要用到这些事件操作时 我们将操作插入到核心事件完成所需要的不同步骤中 实现一个流程处理函数 src core ware ts 中间件方法类型 export type Mi
  • ES6 let 与 const 命令 以及箭头函数初步学习

    ES6 let 与 const 命令 以及箭头函数初步学习 ES6 let 与 const 命令 以及箭头函数初步学习 let 与 const let 块级作用于 const 本质 ES6 声明变量的六种方法 ES6箭头函数 箭头函数与普通
  • CRM常用功能代码

    文章目录 前言 学习任务 一 常用框架 BS入口 方法体 二 常用功能 1 动态Pick 2 简单查询 3 通过值列表Code获取值 获取系统参数 模板 内置参数 4 开关管理员模式 遇到问题及其解决方案 心得总结 前言 学习情况总结 学习
  • ARMv8之arm64架构汇编知识

    1 寄存器 1 1 通用寄存器 31 个R0 R30 每一个寄存器能够存取一个64位大小的数 当使用 x0 x30访问时 是一个 64位的数 当使用 w0 w30访问时 是一个 32 位的数 访问的是寄存器的低32位 如下图所示 1 2 向
  • 线性表的顺序存储实现(数组)

    数据对象集 线性表是个元素构成的有序序列 操作集 线性表 整数i表示位置 元素 线性表主要操作如下 List MakeEmpty 初始化一个空线性表 ElementType FinKth int K List PtrL 根据位序K 返回相应
  • matlab迭代算法实例_【优化求解】基于NSGA2的求解多目标柔性车间调度算法

    柔性作业车间调度问题 FJSP 是经典作业车间调度问题的重要扩展 其中每个操作可以在多台机器上处理 反之亦然 结合实际生产过程中加工时间 机器负载 运行成本等情况 建立了多目标调度模型 针对NSGA2算法收敛性不足的缺陷 引入免疫平衡原理改
  • 比特位计数

    题目链接 比特位计数 题目描述 注意点 对于 0 lt i lt n 中的每个 i 计算其二进制表示中 1 的个数 解答思路 采用动态规划的思想 任意一个数字的1的个数可以由前面数字1的个数推出 除2的n次方的数字外 所以任意一个数字有两种
  • 解决:AttributeError: ‘generator‘ object has no attribute ‘next‘

    报错信息 AttributeError generator object has no attribute next 解决 经过查询发现是python版本之间的问题 把原来的next改为 next 注意是两个下划线
  • vscode 单行注释和多行注释

    单行注释 ctrl 多行注释 alt shift A 代码快速格式化 alt shift F 函数注释 后回车即可
  • 通过Python解决分布式爬虫中的代理难题

    在当今信息爆炸的时代 爬虫技术成为了获取互联网数据的重要手段 然而 随着网站对爬虫的限制越来越严格 分布式爬虫面临的代理难题也日益突出 本文将为你介绍一些实用的Python解决方案 帮助你轻松应对分布式爬虫中的代理问题 让你事半功倍 1 使
  • 利用github.io(githubPages)免费托管个人静态网站/个人博客

    我们的个人博客或者静态网站可以托管到github就能通过github域名访问 免费 省事 当然也可以使用自定义的域名解析 花钱 高大上 git仓库配置 我采用的是自己编写一个html文件 githubPages搭建 首先需要在GitHub上
  • 强化学习算法 Sarsa 解迷宫游戏,代码逐条详解

    本文内容源自百度强化学习 7 日入门课程学习整理 感谢百度 PARL 团队李科浇老师的课程讲解 强化学习算法 Sarsa 解迷宫游戏 文章目录 一 安装依赖库 二 导入依赖库 三 智能体 Agent 的算法 Sarsa 四 训练和测试语句
  • JVM面试问题系列:7种JVM垃圾收集器特点,优劣势、及使用场景!

    一 常见垃圾收集器 现在常见的垃圾收集器有如下几种 新生代收集器 Serial ParNew Parallel Scavenge 老年代收集器 Serial Old CMS Parallel Old 堆内存垃圾收集器 G1 每种垃圾收集器之
  • git credential manager for windows解决方法

    git credential manager for windows解决方法 一 保存 git 的密码 gitconfig 文件中添加 credential helper store 或者在git bash 中执行 git config g
  • 手写算法-FIFO

    一 思路 FIFO是英文First In First Out 的缩写 是一种先进先出的数据缓存器 他与普通存储器的区别是没有外部读写地址线 这样使用起来非常简单 但缺点就是只能顺序写入数据 顺序的读出数据 其数据地址由内部读写指针自动加1完