一、什么是队列结构

一种线性结构,具有特殊的运算法则【只能在一端(队头)删除,在另一端(队尾)插入】。

分类:

  1. 顺序队列结构
  2. 链式队列结构

基本操作:

  1. 入队列
  2. 出队列

二、准备数据

 static final int QUEUELEN = 15;

 class DATA{

     String name;
int age;
} class SQType{
DATA[] data = new DATA[QUEUELEN];
int head;
int tail;
}

在类SQType中data为数据元素,head为队头序号,tail为队尾序号,当head为0时队为空,当tail为QUEUELEN时表示队列已满。

三、初始化队列

在使用队列前首先要创建个空队列,即初始化队列。

  1. 按符号常量QUEUELEN指定的大小申请一片内存空间用来保存对列中的数据。
  2. 设置head=0和tail=0,表示一个空队列。
 SQType SQTypeInit(){
SQType q;
if((q=new SQType())!=null){ //申请内存
q.head = 0;
q.tail = 0;
return q;
}
else
{
return null;
}
}

四、判断空队列

 int SQTypeIsEmpty(SQType q){
int temp = 0;
if(q.head==q.tail)
{
temp = 1;
}
return temp;
}

五、判断满队列

 int SQTypeIsFull(SQType q){
int temp = 0;
if(q.tail==QUEUELEN)
temp = 1;
return temp;
}

六、请空队列

 void SQTypeClear(SQType q){
q.head = 0;
q.tail = 0;
}

七、释放空间

 void SQTypeFree(SQType q){

     if(q!=null){
q = null;
}
}

八、入队列

 int InSQType(SQType q,DATA data){
if(SQTypeIsEmpty(q)==1){
System.out.println("队列已满,操作失败!");
return 0;
}
else
{
q.data[q.tail++]=data;
return 1;
} }

九、出队列

 DATA OutSQType(SQType q){
if(SQTypeIsEmpty(q)==1)
{
System.out.println("队列为空");
return null;
}
else
{
return q.data[q.head++];
}
return null
}

十、读取节点

 DATA PeekSQType(SQType q){
if(SQTypeIsEmpty(q)==1)
{
System.out.println("队列为空");
return null;
}
else
{
return q.data[q.head];
}
return null
}

十一、计算队列长度

 int SQTypeLen(SQType q){
int temp;
temp = q.tail - q.head;
return temp;
}

Java实现队列结构的详细代码的更多相关文章

  1. java 实现二叉树结构基本运算详细代码

    static final int MAXLEN = 20; //最大长度 class CBTType //定义二叉树节点类型 { String data; //元素数据 CBTType left; / ...

  2. Java实现链表结构的具体代码

    一.数据准备 1. 定义节点 2.   定义链表 1.数据部分 2.节点部分 class DATA //数据节点类型 { String key; String name; int age; } cla ...

  3. java连接oracle数据库详细代码

    详细代码: import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;imp ...

  4. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  5. 基本算法思想Java实现的详细代码

    基本算法思想Java实现的详细代码 算法是一个程序的灵魂,一个好的算法往往可以化繁为简,高效的求解问题.在程序设计中算法是独立于语言的,无论使用哪一种语言都可以使用这些算法,本文笔者将以Java语言为 ...

  6. Java连接MySQL数据库——含详细步骤和代码

    工具:eclipse.MySQL.MySQL连接驱动:mysql-connector-java-5.1.45.jar 首先要下载Connector/J地址:http://www.mysql.com/d ...

  7. Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  8. Java 集合系列 05 Vector详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  9. Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

随机推荐

  1. WPF优化:Freezable冻结对象

    原文:WPF优化:Freezable冻结对象 WPF虽然很美观,效果很炫,但是对资源的消耗也很大,尤其是初次接触WPF的人,因为很多地方虽然实现了想要的效果,但是由于经验问题,所以也会造成很大的资源浪 ...

  2. payload指安全测试数据

    payload,翻译过来是有效载荷 通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如数据量的大小.校验位等,这样就相当于给已经分批的原始 ...

  3. POJ 2182 Lost Cows (求序列第k大)

    题解 二分+树状数组 显然最和一个数的值就是rank 那么其它数有什么规律? 从后往前匹配rank,我们可以发现第i个数的rank为还没有匹配的rank第(a[i]+1)大的数 这可以用 树状数组+二 ...

  4. LOJ6503. 「雅礼集训 2018 Day4」Magic(容斥原理+NTT)

    题目链接 https://loj.ac/problem/6503 题解 题中要求本质不同的序列数量,不太好搞.我们考虑给相同颜色的牌加上编号,这样所有牌都不相同.那么如果我们求出了答案,只需要将答案除 ...

  5. Luogu P1108 低价购买 DP

    第一问求最长下降子序列,不提: 第二问:借鉴了最短路的方法??? 我们求出来了每个位置的最长下降子序列的长度,那么刻意这样这样转移 if f[i]==f[j]+1&&a[i]<a ...

  6. 【AC自动机】【树状数组】【dfs序】洛谷 P2414 [NOI2011]阿狸的打字机 题解

        这一题是对AC自动机的充分理解和树dfs序的巧妙运用. 题目背景 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机. 题目描述 打字机上只有28个按键,分别印有26个小写英文字母和' ...

  7. ZOJ - 2042 模运算DP

    解法见网上参考 这种只判断可达性的DP一般用bool 除非int能得到更多的信息 #include<iostream> #include<algorithm> #include ...

  8. 论文笔记 | Self-organized Text Detection with Minimal Post-processing via Border Learning

    论文链接:http://openaccess.thecvf.com/content_ICCV_2017/papers/Wu_Self-Organized_Text_Detection_ICCV_201 ...

  9. PIE SDK存储格式转换

      1.算法功能简介 影像存储格式转换可以实现栅格数据存储格式的自由转换,其中存储格式可以是 BSQ. BIP. BIL 三种格式. 遥感数字图像数据的存储与分发,通常采用以下三种数据格式: BSQ( ...

  10. k8s 集群搭建

    一,环境介绍   master node1 node2 IP 192.168.0.164 192.168.0.165 192.168.0.167 环境 centos 7 centos 7 centos ...