当前位置: 首页 > news >正文

队列和栈学习

队列的结构讲解

队列只允许从尾部加入元素,从头部删去元素(是一个先进先出的数据结构)

它的指针指向一般是左闭右开式(head指向首个数据,tail指向待插入数据的位置)

队列的结构定义图

出队操作:head向后移动一个指针

入队操作:待插入元素插入tail指针指向的位置,tail向后移动一位

队列的假溢出:

尾指针虽然越界,但是队列中数据的实际数量并没有超过队列的上限

假溢出表示

=》因此,提出了循环队列,当count<size时,tail指向0位置

栈的结构讲解

单头进,单头出(先进后出)--方法的调用可以可此处关联

栈的结构

出栈:top指针向下移动一位

入栈:top指针向上移动一位,将数据插入进来

代码展示

这只是博主写做练习的

package Stack; public class Stack<T> implements mystack<T>{ /** * 注意此处,栈在一开始没有数据,所以top=-1 */ private int top = -1; private T[] element; int size = 0; //创建栈 public Stack(int length){ element = (T[])new Object[length]; size = length; } //入栈 @Override public void push(T x) { if(top==size-1){ System.out.println("栈已满"); return; } element[++top] = x; } @Override public void pop() { if(top>=0){ top--; }else { System.out.println("栈为空"); } } @Override public T top() { return element[top]; } }

java中自带的:

//应该是双端队列(即两边都可以进行数据的插入和删除)

package Stack; import java.util.ArrayDeque; import java.util.Deque; public class test { public static void main(String[] args) { Deque deque = new ArrayDeque(); //java中实现栈的最佳选择 deque.push(1); deque.push(2); deque.peek() ;//获取第一个元素 } }
http://www.jsqmd.com/news/1107382/

相关文章:

  • 混合加密实战:Blowfish与同态加密守护云数据隐私
  • CPT Markets:从公开信息出发,拆解风控思路与流程清晰度
  • Synchronous Audio Router:Windows音频路由的终极解决方案
  • CPT Markets:从外汇行业合规表达切入的逻辑复盘
  • 高效管理PS Vita游戏和媒体文件的5个实用技巧
  • 从睡前历史故事场景看儿童学习产品的AI设计思路
  • 木马程序入侵全生命周期拆解:从原理到防御实战指南
  • 5分钟掌握NCM音乐解锁:NcmpGui完全使用指南
  • 海外仓收管发盘(四):6大出库环节WMS标准化落地教程
  • 凋亡执行阶段精准检测!Caspase-6 活性分析试剂盒
  • STM32F446RE与LV3296数据采集系统开发指南
  • Synchronous Audio Router:Windows音频路由的同步架构与低延迟实现
  • FIR 数字滤波器 --verilog设计实现
  • 60 TOPS NPU工业AI部署实战:分得利光选机
  • 高管终面被问到五年内有什么职业规划?留学生用业务生命周期作答「蒸汽求职分享」
  • Python爬虫经典案例031:天气数据爬取:气象数据采集实战
  • 基于着色Petri网的购物系统建模
  • ChanlunX缠论插件终极指南:5分钟实现通达信缠论自动化分析
  • 踩坑总结:Spring @Transactional 事务注解的这几个坑,你踩过几个?
  • 终极隐私保护神器:Boss-Key老板键一键隐藏Windows窗口完整指南
  • MeEdu开源教育系统:如何构建多云协同的视频点播架构
  • OptiStruct自从有了NVHD,整车NVH分析so easy
  • IAP升级方案
  • linux 安装达梦数据库
  • npm 包开发避坑指南:Scope 命名空间管理的 4 种常见错误与修复方案
  • KeyStore Explorer:为什么Java开发者需要告别keytool命令行的五个理由
  • AI + 智能客服系统完整设计方案
  • ONNX模型解析与优化实战指南
  • Jmeter基础知识详解
  • Linux无线网卡兼容性难题:RTL8821CU驱动深度配置指南