一、什么是队列结构

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

分类:

  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. Mac下安装配置Python2和Python3并相互切换使用 转

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014259820/article/details/81023224 安装Python2 Mac系统 ...

  2. POJ1077 Eight A*

    这个题扔到A*可也还行... 定义估价函数h():为每个数或空格的位置 到 最终状态中所在位置 的 曼哈顿距离 的 总和. 把状态压成一个九进制数,便于存储和判重. 然后记录方案可以记录一下此次的操作 ...

  3. P2762 太空飞行计划问题

    传送门 经典的最大权闭合子图问题 实验有正的价值,仪器的价值为负 为了实验我们必须选择相应的仪器 所以从 S 连向实验,边权为实验的价值 实验与相应仪器之间连边,边权为 INF 仪器连向 T 边权为仪 ...

  4. stopPropagation / stopImmediatePropagation

      stopPropagation()只会阻止冒泡或者是捕获. stopImmediatePropagation()会阻止该元素的其他事件发生,但是stopPropagation就不会阻止其他事件的发 ...

  5. sublim text3中的一些设置

    {    "dictionary": "Packages/Language - English/en_US.dic",    "font_face&q ...

  6. 剑指offer——面试题14:剪绳子

    // 面试题14:剪绳子 // 题目:给你一根长度为n绳子,请把绳子剪成m段(m.n都是整数,n>1并且m≥1). // 每段的绳子的长度记为k[0].k[1].…….k[m].k[0]*k[1 ...

  7. WPF 使用第三方ttf字体

    1.将字体文件直接添加到项目中,注意:将文件的“属性”--“生成操作”设置为“Resource” 2.在Xaml中使用,text可以使用文字或直接使用unicode编码,XAML中使用Unicode编 ...

  8. Python I/O及FIle方法

    一.文件操作 文件的编码格式: ASCII与UNICODE: 计算机有256个ASCII字符(8个0/1的排列组合方式一共有256种, 2**8) UTF-8是UNICODE的一种编码格式,计算机中使 ...

  9. Win32 进程间通信的分析与比较

    1 进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码.数据以及它可利用的系统资源(如文件.管道等)组成.多进程/多线 程是Windows操作系统的一个基本特征.M ...

  10. Java - 打印质数(使用控制嵌套循环跳转)

    使用控制嵌套循环跳转,打印输出10 ~ 150之间的质数 代码: public class Testcotinue { public static void main(String[] args) { ...