//java由于泛型的擦除,用起来十分不方便

abstract class BaseQueue<T>{
abstract boolean enQueue(T x);
abstract T front(T x);//注意这里也要和c++ 区别一下 这里直接返回首部元素
abstract boolean delQueue();
abstract void clear();
}
class Queue<T> extends BaseQueue<T>{
int mMaxSize,mIndexF,mIndexR;
T []mQueue;
@SuppressWarnings("unchecked")
Queue(Class<T> type,int maxSize){
mMaxSize=maxSize;
mIndexF=mIndexR=;
mQueue=(T[])Array.newInstance(type, maxSize);
}
@Override
boolean enQueue(T x) {
// TODO Auto-generated method stub
if(isFull()){
//over flow
return false;
}else{
mIndexF=(mIndexF+)%mMaxSize;
mQueue[mIndexF]=x;
return true;
}
}
@Override
T front(T x) {
// TODO Auto-generated method stub
if(isEmpty()){
//emprty
return null;
}
else{
x=mQueue[mIndexF];
System.out.println(x);
return x;
}
} @Override
boolean delQueue() {
// TODO Auto-generated method stub
if(isEmpty()){
//empty
return false;
}
else{
mIndexR=(mIndexR+)%mMaxSize;
return true;
}
}
@Override
void clear() {
// TODO Auto-generated method stub
mIndexF=mIndexR=;
}
boolean isFull(){
if((mIndexR+)%mMaxSize==mIndexR){
return true;
}else{
return false;
}
}
boolean isEmpty(){
return mIndexF==mIndexR;
}
}
public class JBQueue {
public static void main(String args[]){
Integer j = ;
Queue<Integer> test=new Queue<>(Integer.class, );
test.enQueue();
test.front(j);//由于擦除的原因 直接导致j的值没有变
System.out.println(test.front(j));
}
static int ff(int j){
j--;
return j;
}
}

数据结构之队列java版的更多相关文章

  1. 数据结构之堆栈java版

    import java.lang.reflect.Array; /* 具体原理在c++版已经说的很清楚,这里不再赘述, 就提一点:java的泛型具有边界效应,一旦离开作用域立马被替换为object类型 ...

  2. 数据结构之队列C++版

    #include "stdafx.h"/* 队列是一种先进先出的线性表队列的核心是对头部和尾部索引的操作 如上图所示,当对头索引移动到最前面6,队尾又不不再末尾0的位置,那么如果不 ...

  3. 《剑指offer》面试题7 用两个栈实现队列 Java版

    书中方法:队列是先进先出的,栈是先进后出的,试想把一串数压入A栈,接着一个个出栈并压入B栈,便会完成"头在下"到"头在上"的转变.B栈内还有元素时,直接出栈表示 ...

  4. 数据结构与抽象 Java语言描述 第4版 pdf (内含标签)

    数据结构与抽象 Java语言描述 第4版 目录 前言引言组织数据序言设计类P.1封装P.2说明方法P.2.1注释P.2.2前置条件和后置条件P.2.3断言P.3Java接口P.3.1写一个接口P.3. ...

  5. 《Java程序设计与数据结构教程(第二版)》学习指导

    <Java程序设计与数据结构教程(第二版)>学习指导 欢迎关注"rocedu"微信公众号(手机上长按二维码) 做中教,做中学,实践中共同进步! 原文地址:http:// ...

  6. 数据结构 -- 图的最短路径 Java版

    作者版权所有,转载请注明出处,多谢.http://www.cnblogs.com/Henvealf/p/5574455.html 上一篇介绍了有关图的表示和遍历实现.数据结构 -- 简单图的实现与遍历 ...

  7. 数据结构与算法Java描述 队列

    package com.cjm.queue; /** * 数据结构与算法Java实现 队列 * * @author 小明 * */ public class Myqueue { private Nod ...

  8. 数据结构之队列(Python 版)

    数据结构之队列(Python 版) 队列的特点:先进先出(FIFO) 使用链表技术实现 使用单链表技术,在表首尾两端分别加入指针,就很容易实现队列类. 使用顺序表list实现 # 队列类的实现 cla ...

  9. 【数据结构】Java版

    有趣有内涵的文章第一时间送达! 喝酒I创作I分享 生活中总有些东西值得分享 @醉翁猫咪 想你吴亦凡;赵丽颖 - 想你 你是程序猿对吗?会写代码的那种? 我是打字猿?会打代码的那种? 现在告诉大家一个很 ...

随机推荐

  1. 001-python3 初识

    一.python的起源 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 二.python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的 ...

  2. 基数排序的可复用实现(C++11/14/17/20)

    基数排序,是对整数类型的一种排序方法,有MSD (most significant digit)和LSD (least significant digit)两种.MSD将每个数按照高位分为若干个桶(按 ...

  3. mysql 免安装版本 与问题记录

    将文件解压到D盘, 创建 my.ini 配置文件, ------------------复制进去--------------------- [client] port=3306 default-cha ...

  4. 赛前集训的第二个小总结(OI生涯盛极必衰orNOIP前最后试炼?)+关于学OI目的的思考

    这次只有成绩统计是全的…… 看上去好像还是挺跌宕起伏的啊…… 话说亲爱的教练员又一次食言了,说好的10次就换呢?! 名次表只有前10次的了…… 不得不说前10次还是挺好的,10次考试,7次前十,5次前 ...

  5. 不调用free会内存泄露吗?

    内存泄露的概念大家可以自行百度下,本文不做阐述.本文要讲的是在程序中分配了内存,但是最后没有使用free()函数来释放这块内存,会导致内存泄露吗?比如有如下代码: #include <stdio ...

  6. Kubernetes1.15 部署 coredns

    coredns.yaml文件如下所示 # __MACHINE_GENERATED_WARNING__ apiVersion: v1 kind: ServiceAccount metadata: nam ...

  7. Java编程思想:内部类基础部分

    public class Test { public static void main(String[] args) { // Parcel1.test(); // Parcel2.test(); / ...

  8. [记录]Linux下大批量添加用户的方法

    Linux系统提供了创建大量用户的工具,可以让您立即创建大量用户,方法如下: (1)先编辑一个文本用户文件. 每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名.UID.宿主目 ...

  9. jQuery - parents() 获得最近的祖先元素方法

    答案 : parents()[0] <div class="pg-ins layer p_close"> <div class="sign_con&qu ...

  10. JQuery开始

    JQuery jq的选择器 等等(网页的连接:http://www.runoob.com/jquery/jquery-ref-selectors.html) 事件: hover中有俩参数(mousee ...