5.1、顺序队列(java实现)
1、实现代码
public class SeqQueue {
private final int MaxSize = 8;
private int rear; //队尾指针
private int front; //队头指针
private int size; //计数器
private Object seqQueueArray[];
/**
* 初始化
*/
public SeqQueue() {
this.size = 0;
this.front = 0;
this.rear = 0;
seqQueueArray = new Object[MaxSize];
}
public boolean isEmpty(SeqQueue seqQueue) {
if (seqQueue.size == 0){
return true;
}
return false;
}
public boolean isFull(SeqQueue seqQueue) {
if (seqQueue.size > 0 && seqQueue.rear == seqQueue.front){
return true;
}
return false;
}
public void queueAppend(SeqQueue seqQueue,Object element) {
if (isFull(seqQueue)){
System.out.println("已满,无法插入");
return;
}
System.out.println(element+"元素入队列");
seqQueue.seqQueueArray[seqQueue.rear] = element;
seqQueue.rear = (seqQueue.rear +1 )%MaxSize;
seqQueue.size++;
}
public void queueDelete(SeqQueue seqQueue) {
if (isEmpty(seqQueue)){
System.out.println("已空,无法出队列");
return;
}
System.out.print(seqQueue.seqQueueArray[seqQueue.front]+" ");
seqQueue.front = (seqQueue.front +1)%MaxSize;
seqQueue.size--;
}
public void getFront(SeqQueue seqQueue) {
if (isEmpty(seqQueue)){
System.out.println("已空,无法获取队列头");
return;
}
System.out.println("队头元素: "+ seqQueue.seqQueueArray[seqQueue.rear]);
}
public static void main(String[] args) {
SeqQueue seqQueue = new SeqQueue();
seqQueue.getFront(seqQueue);
seqQueue.queueDelete(seqQueue);
for (int i = 0; i < 9; i++) {
seqQueue.queueAppend(seqQueue,i);
}
System.out.println("===========");
seqQueue.queueDelete(seqQueue);
System.out.println("===========");
int number = seqQueue.size;
for (int i = 0; i < number; i++) {
seqQueue.queueDelete(seqQueue);
}
System.out.println();
seqQueue.queueDelete(seqQueue);
}
}
2、实现结果
已空,无法获取队列头
已空,无法出队列
0元素入队列
1元素入队列
2元素入队列
3元素入队列
4元素入队列
5元素入队列
6元素入队列
7元素入队列
已满,无法插入
===========
0 ===========
1 2 3 4 5 6 7
已空,无法出队列
5.1、顺序队列(java实现)的更多相关文章
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- java 实现简单的顺序队列
package com.my; import java.util.Arrays; /** * 顺序队列 * @author wanjn * */ public class ArrayQueue { p ...
- java代码实现顺序队列
java实现顺序队列 package xianxinTable; import java.util.ArrayList; import java.util.Iterator; import com.s ...
- 数据结构----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- 用数组实现队列(顺序队列&循环队列)
用数组实现队列(顺序队列&循环队列) 顺序队列 ️ 队列(先进先出) 几个问题: 队列方法:入队.出队 队列的存储:即队首队尾两个指针, 扩容:如果队列容量不够了,应该扩容,如果队尾没有位置了 ...
- 顺序队列C/C++实现
#include <iostream> using namespace std; const int MAXSIZE = 1000; typedef int ELEMTYPE; const ...
- 顺序队列之C++实现
下面介绍下用C++实现的顺序队列,在VC6下调试通过. 1.文件组织形式 2.sq.h顺序队列类的说明 #ifndef _SQ_H_ #define _SQ_H_ typedef int dataTy ...
- Javascript数据结构与算法--队列(顺序队列、优先队列、循环队列)的实现与用法
前言 队列和栈非常类似,前面已经讲过了栈的实现与用法,现在我们来说说队列. 队列介绍 队列遵循FIFO(First In First Out,先进先出)原则的一组有序的项. 队列是一种特殊的线性表,特 ...
- 队列java实现
队列是一种线性数据结构,是一种运算受限的线性表,只允许在队尾插入,在队头删除.运算规则是先进先出.恰好和栈相反.栈是先进后出.因为栈只在栈顶做删除和插入. 队列按照存储结构可以分为顺序队列和链式队列. ...
- 队列的理解和实现(一) ----- 循环队列(java实现)
什么是队列 我们都知道栈是先进后出的一种线性表,与之相反的是,队列是一种先进先出的线性表.它只允许在表的一端进行插入,而在另一端进行删除.举个例子来说,在生活中我们买东西需要进行排队,最先排队的可以最 ...
随机推荐
- git submodule 子模块
### 背景:为什么要用子模块? 在开发项目中可能会遇到这种问题:在你的项目中使用另一个项目,也许这是一个第三方开发的库,或者是你独立开发的并在多个父项目中使用的.简单来说就是A同学开发了一个模块,被 ...
- bytedance专题
一 挑战字符串 1 无重复字符的最长子串(见leetcode bug free) 2 最长公共前缀(见leetcode bug free) 3 字符串的排列 给定两个字符串 s1 和 s2,写一个函数 ...
- 解决多字段联合逻辑校验问题【享学Spring MVC】
每篇一句 不要像祥林嫂一样,天天抱怨着生活,日日思考着辞职.得罪点说一句:"沦落"到要跟这样的人共事工作,难道自己身上就没有原因? 前言 本以为洋洋洒洒的把Java/Spring数 ...
- 写论文的第三天 自建zookeeper集群
日志___2019.1.25 基于hadoop集群搭建zookeeper集群 Filezilla上传zookeeper压缩包到主节点 安装zookeeper到/usr/local目录 命令:tar – ...
- docker方式部署elk日志搜索平台
Docker部署ELKF操作文档 前提介绍 1.之前搭建elk+f+k使用原生系统软件安装方式,由于docker镜像日趋成熟,docker官网和elastic官网都有相关镜像和各自安装文档可供参考,各 ...
- MQTT服务器(Win)
系统环境准备 Java JDK >=1.6,系统环境变量配置JAVA HOME 链接:https://pan.baidu.com/s/1OO-KCdsCrdfjMtf6BVNl6Q 提取码:dy ...
- springBoot项目配置日志打印管理(log4j2)
1.修改pom文件引用log4j2相关jar包 依赖代码: <!-- log4j2 start --><!-- Spring Boot log4j2依赖 --><depe ...
- OSG与Shader的结合使用
目录 1. 概述 2. 固定管线着色 3. 纹理着色 4. 参考 1. 概述 以往在OpenGL中学习渲染管线的时候,是依次按照申请数据.传送缓冲区.顶点着色器.片元着色器这几个步骤编程的.OSG是O ...
- ranger-hdfs 插件组权限测试
当hdfs文件对外是公开的则该其他用户就算没有配置相关的权限一样可以进行相关的操作.当hdfs文件对外权限是没有开放的,其他用户若需要进行相关操作则需要通过Ranger进行相关权限的配置. 首先 / ...
- [C#] 改进SqliteHelper, 减少拼接SQL语句
说明:开始几个是基本的方法,后面稍微封装了下 public class SqliteHelper { //连接字符串 private static readonly string str = Conf ...