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、4、3、6;
-1输入结束符号
取出的数值顺序是依然是1、4、3、6
队列是先进先出;
JAVA基础知识(2)--队列的操作的更多相关文章
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- java基础知识精华
转载:https://www.jianshu.com/p/6c078abb720f java基础知识 java内存模型 java运行时数据区域 hashMap 如何解决冲突 存储方式 冲突达到一定数量 ...
- java基础知识一览(二)
一.java基础知识 1.一个文件中只能有一个public的类,因为他的类名要求和文件名相同. 2.classpath变量可以设置其它目录下的类. 例如:类文件所在目录是:F:\Javajdk,那么没 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- java 基础知识二 基本类型与运算符
java 基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...
- Java 基础知识总结
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.数据类型: 数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte 8位 (by ...
- 学习Spring必学的Java基础知识(1)----反射(转)
引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系 ...
随机推荐
- windows环境下使用git客户端、github和tortoisegit管理项目代码
一.为什么 为什么不用svn? svn是一个优秀的代码和版本管理工具,使用svn只需要搭建好svn中央仓库,配置本地svn客户端即可,自从google code关闭服务之后,互联网上已经没有非常好的公 ...
- 一起学 Java(四) File、Try 、序列化、MySQL、Socket
一.Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基 ...
- MEAN教程3-NPM安装
NPM简介Node只是一个平台,它的功能和API将只是一个最小集.想获得更多的功能,可以使用模块系统来扩展平台.安装.更新和删除Node.js模块最好的方法是使用NPM工具.NPM有如下两个主要特性: ...
- 蓝桥网试题 java 基础练习 十进制转十六进制
---------------------------------------------------------------------------------------------------- ...
- 部署LNMP架构Blog博客平台 ---惟净
部署环境:VM虚拟机 操作系统:CentOS-6.8-x64 IP地址:192.168.31.91Mysql数据库版本:5.6.34 Cmake软件包版本:3.5.2Nginx软件包版本:1.10.2 ...
- 内功心法 -- java.util.ArrayList<E> (5)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 使用 position:sticky 实现粘性布局
如果问,CSS 中 position 属性的取值有几个?大部分人的回答是,大概是下面这几个吧? { position: static; position: relative; position: ab ...
- PHP基础学习
PHP基础学习 <?php //类型 $test=123; var_dump($test);//打印出类型和数值 echo '<hr/>'; echo gettype($test); ...
- 一口一口吃掉Volley(一)
欢迎访问我的个人博客转发请注明出处:http://www.wensibo.top/2017/02/16/一口一口吃掉Volley(一)/ 本次编写的Volley教程现在看来其实已经跟不上时代了,但是技 ...
- c语言中,有符号数位移
#include <stdio.h> int main(void) { unsigned i = 0xcffffff3; long j=0xcffffff3; int k=0xcfffff ...