数据结构之队列——Java语言实现方法
小标 2018-11-05 来源 : 阅读 1052 评论 0

摘要:本文主要向大家介绍了数据结构之队列——Java语言实现方法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了数据结构之队列——Java语言实现方法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

数据结构之队列——Java实现


队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(head)进行删除操作,而在表的后端(tail)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

代码如下


import java.util.Scanner;

 

class DATA{

 String name;

 int age;

}

 

class SQType{

 static final int QUEUELEN = 15;

 DATA[] data = new DATA[QUEUELEN];

 int head;

 int tail;

 

 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 SQTypeIsClear(SQType q){

  q.tail = 0;

  q.head = 0;

 }

 

 void SQTypeIsFree(SQType q){

  if (q != null){

q = null;

  }

 }

 

 int InSQType(SQType q,DATA data){

  if(q.tail == QUEUELEN){

System.out.println("队列已满!操作失败!");

return 0;

  }else {

q.data[q.tail++] = data;

return 1;

  }

 }

 

 DATA OutSQType(SQType q){

  if (q.head == q.tail){

System.out.println("队列已空!操作失败!");

System.exit(0);

  }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];

  }

 }

 

 int SQTypeLen(SQType q){

  int temp = q.tail - q.head;

  return temp;

 }

}

 

public class Main {

 

 public static void main(String[] args) {

  SQType sqType = new SQType();

  DATA data;

  Scanner sc = new Scanner(System.in);

  SQType stack = sqType.SQTypeInit();

  System.out.println("入队操作:");

  System.out.println("输入姓名 年龄进行入队操作");

  do {

DATA data1 = new DATA();

data1.name = sc.next();

data1.age = sc.nextInt();

if (data1.name.equals("0"))

 break;

else

 sqType.InSQType(stack,data1);

  }while (true);

 

  String temp = "1";

  System.out.println("出队操作:按任意非0键进行出队操作:");

  temp = sc.next();

  while (!temp.equals("0")){

data = sqType.OutSQType(stack);

System.out.println("出队的数据是"+data.name+","+data.age);

temp = sc.next();

  }

  System.out.println("测试结束!");

  sqType.SQTypeIsFree(stack);

 }

}

   


测试结果


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程