JAVA基础知识(2)--队列的操作
队列是一种线性表,它只允许在该表中的一端插入,在另一端删除。
允许插入的一端叫做队尾(rear),允许删除的一端叫做队头(front);
下面用Java的数组进行模拟队列的操作:
/**2015-07-26 18:49:08
*用数组元素来演示队列的内部操作
*@author lihaiming
*Email:912547587@qq.com
*/
import java.util.Scanner;
public class Queue {
//属性变量
private int[] a;
private int head=0,tail=0;
/**
* 无参构造方法
* 默认数组长度为4;
*/
public Queue(){
a = new int[4];
}
/**
* 有参构造方法
* @param m 数组的长度
*/
public Queue(int m){
a = new int[m];
}
/**
* 把元素放到队列的方法
* @param i 元素值
*/
public void push(int i){
a[++tail]=i;
}
/**
* 从队列取出元素方法
*/
public void pop(){
head++;
}
/**
* 将队列元素依次输出方法
*/
public void display(){
for(int i=head+1;i<=tail;i++){
System.out.println(a[i]);
}
}
/**
* 返回队列的元素个数
* @return
*/
public int Size(){
return tail-head;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入数组的长度:");
int m = input.nextInt();
Queue q = new Queue(m);
System.out.println("请依次输入队列的元素:");
System.out.println("请按-1结束");
int c;
while((c=input.nextInt())!=-1){
q.push(c);
}
System.out.println("依次进入队列的顺序:");
q.display();
System.out.print("队列里有:");
System.out.println(q.Size()+"个元素");
System.out.println("依次取出的顺序:");
while(q.head != q.tail){
System.out.println(q.a[q.head+1]);
q.head++;
}
}
}
程序结果:
请输入数组的长度:
6
请依次输入队列的元素:
请按-1结束
1
4
3
6
-1
依次进入队列的顺序:
1
4
3
6
队列里有:4个元素
依次取出的顺序:
1
4
3
6
首先确定一个数组的长度,这里我先确定一个长度6,依次添加数值1、4、3、6;
-1输入结束符号
取出的数值顺序是依然是1、4、3、6
队列是先进先出;
转载于:https://www.cnblogs.com/lihaiming93/p/4678449.html
JAVA基础知识(2)--队列的操作相关推荐
- 重拾Java基础知识:运算符操作
Java基础知识:运算符操作 前言 优先级 赋值 算术运算符 一元加减运算符 递增和递减 关系运算符 逻辑运算符 短路 位运算符 与(&) 或(|) 异或(^) 反(~) 左移(<< ...
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
- java(5)---Java基础知识大全
Java基础知识大全 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平 ...
- Java基础知识(九) 容器
Java基础知识 1. Java Collections 框架是什么 2. 什么是迭代器 3. ArrayList.Vector 和 LinkedList 有什么区别 4. HashMap.Hasht ...
- JAVA基础知识学习全覆盖
文章目录 一.JAVA基础知识 1.一些基本概念 1.Stringbuffer 2.局部变量成员变量 3.反射机制 4.protect 5.pow(x,y) 6.final ,finally,fina ...
- Java基础知识 廖雪峰教程笔记
Java基础知识 Java基础知识 java简介 名词解释 运行Java程序 Java基本数据类型 模块 包装类型 记录类 异常处理 Java异常 使用Commons Logging 使用log4j ...
- 23篇大数据系列(一)java基础知识全集(2万字干货,建议收藏)
大数据系列爽文,从技术能力.业务基础.分析思维三大板块来呈现,你将收获: ❖ 提升自信心,自如应对面试,顺利拿到实习岗位或offer: ❖ 掌握大数据的基础知识,与其他同事沟通无障碍: ❖ 具备一定的 ...
- 学习java基础知识笔记
Java基础知识 第一章.Java基础入门 1.JDK的组成 2.什么是注释,注释有哪些,字面量,什么是变量 注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的.单行注释. ...
- Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
最新文章
- Shell脚本个例二
- bp 字母识别 java_Matlab实现BP网络识别字母
- 上传漏洞学习——upload-labs 闯关(一)
- SAP ABAP应用服务器返回给前端的304 not modified是怎么设置的
- 信息学奥赛一本通(2070:【例2.13】数字对调)
- Java i18n - Java中的国际化
- 直播翻车,还有救吗?
- 1.详细说明微型计算机的组成,第1章微型计算机系统导论.ppt
- @程序员,如何轻松实现数据可视化?
- word2vec 细节解析1
- html页面载入完毕返回顶部,HTMl页面中返回顶部如何实现 HTMl页面中返回顶部实现代码...
- 这三个博弈论新趋势,正深刻影响深度强化学习道翰天琼认知智能未来机器人接口API
- 药物用法拉丁文缩写词
- java技术 新 阶段作业,北邮网院web技术阶段作业
- Android警告信息:Insufficient image color contrast ratio
- 题目1 求Sum=x+xx+xxx+xxxx+xxx+xx+x的值,其中x是一个1~9的数字。从键盘上输入任意1~9的数字(如输入此范围外的数据,不处理该数据,程序提醒后继续输入),请输出Sum的结果
- 机房运维神器之远程监控网络设备
- SNAT与DNAT详解
- 汉字logo就是土?你怕是没见识过我们中国的这些标志
- 组氨酸标签序列选择_6 his tag 序列