数据结构与算法学习2-----数组实现队列

Java数据结构与算法之学习路线 目录: 1.前言 2.数据结构与算法学习大纲(粗糙) 3.线性结构分类 4.各个线性类型数据结构的特点以及使用场景 5.数组与队列的区别 1.前言: 昨天去面试了一家我觉得薪资和公司文化都不错的公司,也不知道是天真还是没得自知之明,一个普通本科去跟人家985,211高校的 竞争,哎,就想着试试,喜欢就上嘛,然后就去了。去做了两道面试题,全是数据结构和算法的题,由于我的java和 阅读详情

首先说一下队列的特性,和栈正好相反
是先进先出,也就是说谁先进来先出去的就是谁
这次要实现的是一个简单的队列,有add和 delete 以及打印数据的方法
其中add()方法采用尾插法,其中会考虑到空间重复利用的问题

package array;


//用数组模拟实现队列  和栈相反  栈是头插法、尾删除  队列是尾插法、头删除
public class Queue {

    private int[] value = new int[20];

    int head = -1;  //头指针 一直跟着头部元素
    int end = -1;   //尾指针 一直跟着尾部元素
    int max = 20;   //最大元素数量

    //添加元素  尾插法 当end到底 需要将底部值回推到顶部 重置head 如果此时还是满的 那就满了
    public void add(int param) {
        if (end >= 19) {
            head = -1;
            int [] temp = new int[max];
            int index = 0;
            for (int i : value) {
                if (i != 0) {
                    temp[index] = i;
                    index++;
                }
            }
            end = index - 1;
            value = temp;
            if(index >= 20) {
                System.out.println("满了");
            }
        }else {
            value[end + 1] = param;
            end++;
        }
    }
    //删除元素
    public void delete() {
        head++;
        value[head] = 0;
    }
    //打印
    public void print() {
        for (int i : value) {
            System.out.print(i + ",");
        }
    }

    static class Demo {
        public static void main(String[] args) {
            Queue q = new Queue();
            for (int i = 0; i < 40 ;i++) {
                q.add(i);
            }
            for (int i = 0; i < 5 ;i++) {
                q.delete();
            }
            for (int i = 41; i < 50 ;i++) {
                q.add(i);
            }
            q.print();
        }
    }

}

我这里实现是有一些问题得,头尾指针可能可以加一 更好理解一些,还有最大元素数量,这里可以通过一个构造方法去动态控制,不过我只是为了理解思想,这些不重要了。
欢迎讨论~

python数据结构与算法学习路线及系列文章汇总(持续更新。。) 虽然是用python搞机器学习的大项目,还是要从零开始学习数据结构那一套理论。不知不觉数据结构及算法系列的学习及LeetCode刷题已经一大堆,现对此汇总。 如下是一套比较合理的完整的学习路径: 1)数据结构与算法的理论,包括复杂度的思想,从线性表开始(链表,栈和队列),然后是数组和字符串的初级理论和题目(双指针);查找算法中深刻理解二分查找及哈希查找。 2)接下来打算学习树及二叉树相关姿势... 阅读详情

相关推荐

栈和队列经典算法 —— 双栈实现队列与双队列实现栈

摘要:栈和队列是数据结构中经典且重要的两个成员,我们在学习完线性表之后接触的最早两个数据结构就是这两个,关于这两个数据结构的算法也是非常多且重要,最重要的是这两个算法 —— 两个栈实现一个队列和两个队列实现一个栈。...

云杉木屋 2386

数据结构与算法2:用数组实现队列

队列 队列就是一个先入先出的数据结构,用数组可以实现定长队列; 实现 class ArrayQueue{ private int maxSize; //队列最大size private int head; //队列头指针 private int end; //队列尾指针 private int[] array; //队列数组 public ArrayQueue(...

whale的博客 286

数据结构与算法之美-学习笔记

    接上篇文章,在我意识到数据结构与算法的重要性时,正好在群里有人分享了极客时间的数据结构与算法之美的课程,从入门篇、基础篇、高级篇到实战篇,由浅入深的讲述常用的数据结构与算法,特别是在留言区作者的留言"迈不过去你找我退钱",我就喜欢这种有自信的人,当然不是完全指望他人帮自己把算法捡起来, 既然来了,就要全身心的投入,在此立个flag,通过这个阶段的学习,理解常用的算法与数据结构,掌握复杂度的...

weixin_38650528的博客 9981

三、数据结构与算法 (二)数组模拟环形队列

下图是一个数组实现环形队列的示意图,图一是个空队列,这里空可以推断出(rear+2)%maxSize=(front+1)%maxSize表示队列已经满了

sunweihao2019的博客 204

什么是数据结构?什么是算法?我该怎么学习数据结构与算法?

01 前言 学习算法,我们不需要死记硬背那些冗长复杂的背景知识、底层原理、指令语法……需要做的是领悟算法思想、理解算法对内存空间和性能的影响,以及开动脑筋去寻求解决问题的最佳方案。相比编程领域的其他技术,算法更纯粹,更接近数学,也更具有趣味性。 本文将回顾数据结构与算法的基础知识,学习日常所接触场景中的一些算法和策略,以及这些算法的原理和他背后的思想,最后会动手写代码,用java里的数据结构来实现这些算法,如何去做? 02 基本概念回顾 2.1 什么是数据结构? 1)概述 数据结构是计算...

mf97532的博客 1061

永久关闭Windows更新的5种方法

很多家用电脑,如果系统自动更新的话,会变得越来越卡顿,且硬件型号兼容也并不完美。那么我们该如何彻底关闭Win11的自动更新呢?以下准备了5种方法,您可以根据自身实际情况选择合适的方法!

qq_43652793的博客 1万+

DS4Android:终极数据结构可视化教程,让算法学习变得简单直观

在计算机科学教育中,数据结构与算法是核心基础,但传统的文字和代码教学往往让初学者望而生畏。DS4Android是一款创新的Android应用程序,通过可视化交互界面让数据结构的学习变得直观易懂。这个开源项目将抽象的数据结构概念转化为生动的图形动画,帮助开发者、学生和编程爱好者深入理解数组、链表、栈、队列、二叉树等核心数据结构的工作原理。 ## 为什么需要数据结构可视化工具? 数据结构是计算机科

gitblog_00801的博客 304

手把手教你用T630芯片开发USB3.0数据采集卡(含FPGA对接避坑指南)

本文详细介绍了如何使用国产T630芯片开发USB3.0数据采集卡,包括FPGA对接的避坑指南。T630作为国产替代方案,相比传统CYUSB3014芯片,具有更高的传输带宽(实测410MB/s)和更完善的开发支持。文章从硬件设计、固件开发到上位机调试,提供了全流程的技术细节和优化技巧,助力开发者快速实现工业级数据采集系统。

weixin_42531163的博客 619

新星计划Day4【数据结构与算法】 稀疏数组与队列

新星计划Day4【数据结构与算法】 稀疏数组与队列 👩‍💻博客主页:京与旧铺的博客主页 ✨欢迎关注🖱点赞🎀收藏⭐留言✒ 🔮本文由京与旧铺原创,csdn首发! 😘系列专栏:java学习 💻首发时间:🎞2022年4月28日🎠 🎨你做三四月的事,八九月就会有答案,一起加油吧 🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦 🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲 🛒导航小助手🎪 文章目录新星计划Day4【数据结构与算法】 稀疏数组与队列在这里插入图片描述🛒导

qq_46272491的博客 2293

AI训练加速30%!用numactl玩转多显卡绑核的隐藏技巧

本文深入探讨了如何利用Linux系统的numactl工具,通过精确的NUMA绑核策略优化多GPU AI训练性能。文章详细解析了NUMA架构对性能的影响,提供了从拓扑探查、命令实战到多卡脚本化部署的完整指南,并分享了性能验证与常见陷阱,帮助开发者实现高达30%的训练加速。

web99的专栏 448

从零实现机械臂抓取仿真:用MoveIt+Gazebo完成物体pick&place全流程

本文详细介绍了如何使用ROS的MoveIt框架与Gazebo仿真环境,从零构建机械臂抓取仿真系统。涵盖环境搭建、MoveIt配置、Gazebo集成、抓取动作实现等全流程,帮助开发者掌握机械臂控制的核心技术,实现高效的pick&place任务。

weixin_29250403的博客 475

[数据结构与算法] 邂逅数组与队列

数据结构与算法一 线性结构与非线性结构稀疏数组及五子棋问题二维数组与稀疏数组的转化领会遍历二维数组的两种方式队列和银行排队问题银行排队问题队列与队列模拟 学习完部分大数据知识之后, 大数据阶段的学习就暂时告一段落了. 为了能够进入大厂修习, 因此特别在这端时间里通过学习韩顺平老师的数据结构与算法来复习下数据结构与算法. 与其说是复习不如说是预习,嘿嘿.我将不同于以往的写博方式, 重新和大家一起...

时间静止 4196

Vue2 - 详细实现解析Markdown内容生成侧边栏Toc目录索引,识别文章内容根据大标题/小标题自动生成多级文章目录,点击目录导航时跳转到文章内容对应的锚点位置带过渡动画,滑过锚点时高亮对应标题

vue2,nuxt2,Markdown,目录,文章目录锚点,滚动高亮导航文字,根据页面滚动高亮显示目录的侧边栏,自动提取标题生成右侧目录,vuemarkdown解析并生成目录,滚动页面的时候文章目录跟着选中效果,侧边栏滚动跟随页面,右边目录固定,左边内容可以滚动并且与左边目录联动,实现监听滚动,锚点定位,文章目录滚动跟随高亮,右边菜单点击目录滚动到对应标题,报错,渲染失败,文章内容,读取#标题符号,自动生成一个目录树,自动生成Toc目录,博客内容生成目录索引,资讯文章,生成锚点目录树TOC,详细示例代码教

🏆 前端领域优质创作者 3668

C语言数据结构与算法入门:链表、栈与队列的实现

本文介绍了C语言中三种基本线性数据结构(链表、栈和队列)的实现方法。主要内容包括: 链表:通过节点指针实现动态链式结构,包含创建、插入、删除和遍历操作 栈:基于数组实现后进先出(LIFO)结构,实现入栈、出栈和获取栈顶元素等功能 队列:使用数组实现先进先出(FIFO)结构,包含入队、出队和获取队头元素操作 每个模块都提供了完整的代码示例和常见错误提示,帮助读者掌握这些基础数据结构的实现原理和应用场景。

编程世界如山海,探索不止。 2万+

YOLOv11涨点改进 | Neck改进篇 | YOLOv11引入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率

本文介绍了基于BiFPN特征融合模块优化的YOLOv11目标检测模型。BiFPN通过双向跨尺度连接和加权特征融合机制,显著提升了多尺度特征融合效率。该方法在COCO数据集上实现了55.1AP的检测精度,同时大幅降低计算成本(减少13-42倍FLOPs)。文章详细解析了BiFPN模块结构、核心代码实现方法,并提供了YOLOv11-BiFPN配置文件的修改指导,为计算机视觉领域提供了一种高效的目标检测解决方案。

Ai缝合怪、助力小伙伴高效发论文 707

YOLOv9原创自研:卷积魔改 | 一种新颖的风车形卷积(PConv)融合注意力机制,加强微弱小目标检测能力

为了进一步提升小目标检测能力,风车形卷积(PConv)融合注意力机制进一步提升小目标检测能力

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 358

数据结构与算法—队列详解

大纲前言 队列介绍基本属性 普通队列循环队列链式实现具体实现 前言 栈和队列是一对好兄弟,前面我们介绍过数据结构与算法—栈详解,那么栈的机制相对简单,后入先出,就像进入一个狭小的山洞,山洞只有一个出口,只能后进先出(在外面的先出去)。而队列就好比是一个隧道,后面的人跟着前面走,前面人先出去(先入先出)。日常的排队就是队列运转形式的一个描述! 所以队列的核心理念就是:先进先出! 队列介绍 基...

bigsai 6710

【PostgreSQL教程】PostgreSQL 特别篇之 语言接口Java

本篇教程的Java程序中开始使用PostgreSQL之前,需要确保在计算机上设置了PostgreSQL JDBC和Java。您可以检查Java教程以在计算机上安装Java。现在让本篇教程检查如何设置PostgreSQL JDBC驱动程序。

No8g攻城狮的博客 1753

Java数据结构和算法 day01 稀疏数组与队列

文章目录第一章 数据结构和算法概述几个经典的算法面试题数据结构和算法的重要性数据结构与算法框架数据结构和算法的关系(了解!!!)编程中实际遇到的几个问题(了解)线性结构和非线性结构第二章 稀疏数组与队列稀疏数组的应用场景稀疏数组转换的思路分析及实现队列的应用场景和介绍数组模拟队列的思路分析及实现数组模拟环形队列思路分析及实现Leetcode每日一练[1. 两数之和](https://leetcode-cn.com/problems/two-sum/)[5. 最长回文子串](https://leetcode-

杨丙寅 6807

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

如何学习数据结构和算法

首先掌握常用的、基础的。然后在此基础上往进行扩展学习。 常用的、基础的数据结构和算法有20个。 数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。 这些需要一一攻克。 多思考,多想。往往需要灵魂三问,是什么?有什么用?怎么用?用来解决哪些实际问题? 当然了,你也可以思考一下为啥要学习这门课程? 什么是数据结构?什么是算法? 广义:数据结构就是一组存储结构。算..

铭 6446

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【算法通关指南:数据结构和算法篇 】队列相关算法题:1. 【模板】队列,2. 机器翻译

本文介绍了队列相关的两个算法题目及其解决方案。第一部分是队列模板题,提供了两种实现方式:STL队列和模拟数组队列。第二部分是机器翻译问题,通过队列和状态数组的结合使用,模拟内存管理过程,统计查找次数。文章包含详细的算法原理说明和对应代码实现,适合算法学习者参考。 (摘要字数:110字)

小龙报的博客 2024

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大厂AI必备数据结构与算法——队列实现(六)详细文档

计算机科学中,queue 是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。习惯来说,添加的一端称为尾,移除的一端称为头,就如同生活中的排队买商品queue先定义一个简化的队列接口/*** 向队列尾插入值* @param value 待插入值* @return 插入成功返回 true, 插入失败返回 false*//*** 从对列头获取值, 并移除* @return 如果队列非空返回对头值, 否则返回 null*/E poll();/**

程序员-杨胡广的博客 1518

从零开始学习数据结构与算法:Python实现

数据结构与算法是计算机科学中至关重要的概念之一,对于任何想要成为优秀程序员的人来说,深入理解它们是必不可少的。本文将介绍如何从零开始学习数据结构与算法,并使用Python语言实现一些基本的数据结构和算法,帮助读者入门。

一键难忘的博客 4091

【数据结构与算法】之学习路线

数据结构是用来存储和组织数据的方式,它定义了数据在内存中的布局和访问方式。

weixin_64178283的博客 4485

数据结构与算法——队列

1. 队列是一个有序列表,可以用数组或是链表来实现(本文使用的是数组)2. 遵循先入先出的原则。先存入队列的数据,先要取出;后存入队列的数据,要后去除。

Benmao的博客 1441

2_数据结构与算法

O Master basic algorithoms and design models. KR Master sort ,insert and research algorithoms. Master basic algorithoms about others. Master all kinds of data structure. Master common design model. sort ,insert and research algorithoms.

贵在坚持 5082
上一篇: 数据结构与算法学习1-----稀疏数组
下一篇: 数据结构与算法学习3------单向链表的实现
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值