java的队列和栈_java实现队列和栈
队列:队列其实就是我们生活中的排队现象,先进入的先出,后进入的后出,代码实现如下:
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实现队列和栈相关推荐
- java内存堆和栈_java中堆,栈主要区别及内存存储
java堆.栈.堆栈的区别 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度 ...
- java中有没有栈_Java中堆和栈有什么区别
stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...
- java语言链栈_Java语言实现数据结构栈代码详解
近来复习数据结构,自己动手实现了栈.栈是一种限制插入和删除只能在一个位置上的表.最基本的操作是进栈和出栈,因此,又被叫作"先进后出"表. 首先了解下栈的概念: 栈是限定仅在表头进行 ...
- java的队列实现方法_Java实现队列的三种方法集合
数组实现队列 //数组实现队列 class queue{ int[] a = new int[5]; int i = 0; //入队操作 public void in(int m) { a[i++] ...
- java 消息队列详解_Java消息队列-Spring整合ActiveMq的详解
本篇文章主要介绍了详解Java消息队列-Spring整合ActiveMq ,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1.概述 首先和大家一起回顾一下Java 消息服 ...
- 在java的实现栈的插入数据_Java实现数据结构栈stack和队列Queue
回顾JDK提供的集合类 容器(集合)框架如下: 集合类存放于java.util包中.集合类存放的都是对象的引用,而非对象本身. 集合类型主要有3种:set(集).list(列表)和map(映射). C ...
- Java实现自定义队列和树结构_Java数据结构之链表、栈、队列、树的实现方法示例...
本文实例讲述了java数据结构之链表.栈.队列.树的实现方法.分享给大家供大家参考,具体如下: 最近无意中翻到一本书,闲来无事写几行代码,实现几种常用的数据结构,以备后查. 一.线性表(链表) 1.节 ...
- java中定义一个栈容器_Java 容器之 Connection栈队列及一些常用
集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...
- java判断栈中元素数目_Java数据结构与算法-栈和队列
(摘录加总结)------ 栈和队列不属于基础的数据结构,它们都属于线性表. 一.栈 对于栈存储操作元素只能在栈结构的一端进行元素的插入和删除,是一种性质上的线性表结构.按照"先进后出&qu ...
最新文章
- common lisp里的几个操作符
- Android 改变窗口标题栏的布局
- java前言之计算机常识
- 微软 python_微软推出 Pylance,改善 VS Code 中的 Python 体验
- Spring Boot配置@spring.profiles.active配置
- QQ 互联审核不通过问题的解决方法
- goland设置Terminal
- python反编译exe_实战 Python3.7+64位 Exe 反编译
- 上班第一天(6)--一个程序员的成长史(15)
- Apache 目录结构与配置指令
- [HAOI2015]树上染色(树形背包)
- @Valid注解的使用
- 光流(四)--Kanade-Lucas-Tomasi(KLT)目标跟踪
- 普林斯顿微积分读本:第 3 章 极限导论
- python的画图工具,Python画图工具matplotlib的安装
- stm32 无线打印机服务器,STM32开发的蓝牙热敏打印机
- Excel xlsx file; not supported报错
- 洛谷P1007独木桥题解
- 深度爬取网易Lofter的爬虫
- HTTP协议中状态码的含义
热门文章
- Flutter代码锦囊---淘口令复制弹窗
- Flutter布局锦囊---圆框的表单字段
- 标准IO库fgets和fputs对一个文本文件的读写操作
- SQL注入学习part06:(结合sqli-libs学习:51-61关)
- 荣耀份额重回中国市场前三;​特斯拉使用替代芯片重写汽车软件;RabbitMQ 3.9.0 发布|极客日报...
- 为什么谷歌被骂上热搜一点也不冤,详解FLoC背后联邦计算
- 10 年前的我 VS 10 年后的我
- 响应式布局技术:App如何适配不同尺寸的设备
- 构建安全驱动型网络,Fortinet荣誉2020 Gartner广域网边缘基础设施领导者的源力
- OTT 端性能优化建设之 Weex 实践之路