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实现)
什么是队列 我们都知道栈是先进后出的一种线性表,与之相反的是,队列是一种先进先出的线性表.它只允许在表的一端进行插入,而在另一端进行删除.举个例子来说,在生活中我们买东西需要进行排队,最先排队的可以最 ...
随机推荐
- React 多副本问题
Element ref was specified as a string (MySider) but no owner was set. This could happen for one of t ...
- C#自动计算字符串公式的四种方法
原地址:https://blog.csdn.net/ifu25/article/details/53292134 四种方式 简单粗暴:利用SQL数据库计算 功能强大:利用JavaScript计算 看不 ...
- 小白学Python(2)——常用Python编程工具,Python IDE
下载好Python,但是如何开始编程呢? 有几种方法, 1.第一个就是command lind 即为命令行的方式,也就是我们常说的cmd. 输入 win+ cmd 在命令行中再输入 python,即可 ...
- MongoDB 数据库的学习与使用
MongoDB 数据库 一.MongoDB 简介(了解) MongoDB 数据库是一种 NOSQL 数据库,NOSQL 数据库不是这几年才有的,从数据库的初期发展就以及存在了 NOSQL 数据库. ...
- Spark基本函数学习
package cn.itcast.spark.czh import org.apache.spark.{SparkConf, SparkContext} object TestFun { def m ...
- Selenium3 + Python3自动化测试系列十——调用JavaScript代码
调用JavaScript代码 一.调用JavaScript代码方法 Selenium在对浏览器操作时会有自动化代码中不稳定的部分,经常出错的部分,可以将这部分对网页元素进行操作的代码换成对应的Java ...
- python 07 数据类型
目录 1. 基础数据类型填充 1.str:(不可变) 2. list: 3. tuple: 4. dict: 5. set: 6. bool: 7. 数据类型之间转换 2.删除列表/字典的代码坑: 3 ...
- Java多线程之线程的启动
Java多线程之线程的启动 一.前言 启动线程的方法有如下两种. 利用Thread 类的子类的实例启动线程 利用Runnable 接口的实现类的实例启动线程 最后再介绍下java.util.concu ...
- Python 命令行之旅:使用 argparse 实现 git 命令
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
- Java发送邮件必带超时时间配置
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在线上遇到了一个发送邮件的问题,记录一下. 一.先说 ...