队列:队列其实就是我们生活中的排队现象,先进入的先出,后进入的后出,代码实现如下:

public class Queue {

private int front;//队头一端,只允许删除

private int rear;//队尾一端,只允许插入操作

private int max_size =16;

private Object[] data;

public Queue() {

this(10);

}

public Queue(int size){

if(size<0){

throw new IllegalArgumentException("队列初始化失败,原因是:"+size);

}

this.max_size = size;

front = rear = 0;

data = new Object[max_size];

}

//判断是否为空

public boolean isEmpty(){

return rear==front?true:false;

}

//入队

public boolean add(E e){

if(rear==max_size){

throw new RuntimeException("队列满了");

}else{

data[rear++] = e;

return true;

}

}

//返回队首元素,不删除元素

public E peek(){

if(isEmpty()){

return null;

}

return (E) data[front];

}

//出队

public E poll(){

if(isEmpty()){

throw new RuntimeException("队列为空");

}

else{

E e = (E) data[front];

data[front++] = null;

return e;

}

}

//长度

public int length(){

return rear-front;

}

}

public class Queue {

private Object[] data; //存储数据

private int head; //头

private int tail; //尾

public Queue(){

data = new Object[100];//为了说明原理随意指定

head =1;

tail =1;

}

public void put(T t){

data[tail] =t;

tail++;

}

public T get(){

T t =(T) data[head];

head ++;

return t;

}

}

栈:

package test;

public class stack {

private int maxSize;// 栈的大小

private int top;

private char[] arr;

public stack(int size) {

maxSize = size;

top = -1;

arr = new char[maxSize];

}

public void push(char value) { // 压入数据

arr[++top] = value;

}

public char pop() { // 弹出数据

return arr[top--];

}

public char peek() { // 访问栈顶元素

return arr[top];

}

public boolean isFull() { // 栈是否满了

return maxSize - 1 == top;

}

public boolean isEmpty() { // 栈是否为空

return top == -1;

}

}

java的队列和栈_java实现队列和栈相关推荐

  1. java内存堆和栈_java中堆,栈主要区别及内存存储

    java堆.栈.堆栈的区别 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度 ...

  2. java中有没有栈_Java中堆和栈有什么区别

    stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...

  3. java语言链栈_Java语言实现数据结构栈代码详解

    近来复习数据结构,自己动手实现了栈.栈是一种限制插入和删除只能在一个位置上的表.最基本的操作是进栈和出栈,因此,又被叫作"先进后出"表. 首先了解下栈的概念: 栈是限定仅在表头进行 ...

  4. java的队列实现方法_Java实现队列的三种方法集合

    数组实现队列 //数组实现队列 class queue{ int[] a = new int[5]; int i = 0; //入队操作 public void in(int m) { a[i++] ...

  5. java 消息队列详解_Java消息队列-Spring整合ActiveMq的详解

    本篇文章主要介绍了详解Java消息队列-Spring整合ActiveMq ,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1.概述 首先和大家一起回顾一下Java 消息服 ...

  6. 在java的实现栈的插入数据_Java实现数据结构栈stack和队列Queue

    回顾JDK提供的集合类 容器(集合)框架如下: 集合类存放于java.util包中.集合类存放的都是对象的引用,而非对象本身. 集合类型主要有3种:set(集).list(列表)和map(映射). C ...

  7. Java实现自定义队列和树结构_Java数据结构之链表、栈、队列、树的实现方法示例...

    本文实例讲述了java数据结构之链表.栈.队列.树的实现方法.分享给大家供大家参考,具体如下: 最近无意中翻到一本书,闲来无事写几行代码,实现几种常用的数据结构,以备后查. 一.线性表(链表) 1.节 ...

  8. java中定义一个栈容器_Java 容器之 Connection栈队列及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...

  9. java判断栈中元素数目_Java数据结构与算法-栈和队列

    (摘录加总结)------ 栈和队列不属于基础的数据结构,它们都属于线性表. 一.栈 对于栈存储操作元素只能在栈结构的一端进行元素的插入和删除,是一种性质上的线性表结构.按照"先进后出&qu ...

最新文章

  1. common lisp里的几个操作符
  2. Android 改变窗口标题栏的布局
  3. java前言之计算机常识
  4. 微软 python_微软推出 Pylance,改善 VS Code 中的 Python 体验
  5. Spring Boot配置@spring.profiles.active配置
  6. QQ 互联审核不通过问题的解决方法
  7. goland设置Terminal
  8. python反编译exe_实战 Python3.7+64位 Exe 反编译
  9. 上班第一天(6)--一个程序员的成长史(15)
  10. Apache 目录结构与配置指令
  11. [HAOI2015]树上染色(树形背包)
  12. @Valid注解的使用
  13. 光流(四)--Kanade-Lucas-Tomasi(KLT)目标跟踪
  14. 普林斯顿微积分读本:第 3 章 极限导论
  15. python的画图工具,Python画图工具matplotlib的安装
  16. stm32 无线打印机服务器,STM32开发的蓝牙热敏打印机
  17. Excel xlsx file; not supported报错
  18. 洛谷P1007独木桥题解
  19. 深度爬取网易Lofter的爬虫
  20. HTTP协议中状态码的含义

热门文章

  1. Flutter代码锦囊---淘口令复制弹窗
  2. Flutter布局锦囊---圆框的表单字段
  3. 标准IO库fgets和fputs对一个文本文件的读写操作
  4. SQL注入学习part06:(结合sqli-libs学习:51-61关)
  5. 荣耀份额重回中国市场前三;​特斯拉使用替代芯片重写汽车软件;RabbitMQ 3.9.0 发布|极客日报...
  6. 为什么谷歌被骂上热搜一点也不冤,详解FLoC背后联邦计算
  7. 10 年前的我 VS 10 年后的我
  8. 响应式布局技术:App如何适配不同尺寸的设备
  9. 构建安全驱动型网络,Fortinet荣誉2020 Gartner广域网边缘基础设施领导者的源力
  10. OTT 端性能优化建设之 Weex 实践之路