数据结构之队列java版
2024-09-01 04:52:51
//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的模式对话框和非模式对话框
- https笔记
- Android开发-API指南-<;instrumentation >;
- RequiredFieldValidator的使用
- SFMPQ打包工具完后小结
- Oracle 表数据去重
- ASP导出Word带页眉页脚,中文不乱码
- ACTIVEX 重新安装与卸载
- Word2007怎样从随意页開始设置页码 word07页码设置毕业论文
- 在外国网站上看到一个用artoolKit做的demo,学习了用gcd创建单列
- docker学习笔记2:容器操作
- QT信号和槽
- Beta第一天
- C++primer第一章(部分)
- MySql:SELECT 语句(四)通配符的使用
- Delphi 常用语句
- XP下安装Centos 6.4 双系统 :Linux系统分区及挂载点,关键引导程序启动设置
- 统一建模语言 UML (2)
- [转]在ubuntu下安装sublime text
- codeforce——思维dp