数据结构之队列java版
2016-10-30 14:42
197 查看
//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=0; 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+1)%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+1)%mMaxSize; return true; } } @Override void clear() { // TODO Auto-generated method stub mIndexF=mIndexR=0; } boolean isFull(){ if((mIndexR+1)%mMaxSize==mIndexR){ return true; }else{ return false; } } boolean isEmpty(){ return mIndexF==mIndexR; } } public class JBQueue { public static void main(String args[]){ Integer j = 6; Queue<Integer> test=new Queue<>(Integer.class, 10); test.enQueue(3); test.front(j);//由于擦除的原因 直接导致j的值没有变 System.out.println(test.front(j)); } static int ff(int j){ j--; return j; } }
相关文章推荐
- 数据结构之优先队列-Java PriorityQueue使用(3)
- Java之美[从菜鸟到高手演变]之数据结构基础、线性表、栈和队列、数组和字符串
- 数据结构之链表、栈和队列 java代码实现
- 数据结构之java实现队列
- 数据结构(java语言描述)栈(队列)习题
- Java之美[从菜鸟到高手演变]之数据结构基础、线性表、栈和队列、数组和字符串
- 数据结构之队列的实现(JAVA)
- java通过LinkedList实现堆栈和队列数据结构
- java 数据结构之 顺序存储结构 队列
- 数据结构——队列(Java实现)
- 数据结构之优先队列--二叉堆(Java实现)
- Java使用LinkedList模拟一个堆栈或者队列数据结构
- Java之数据结构基础、线性表、栈和队列、数组和字符串,树—学习笔记
- 数据结构(二):队列的Java实现
- 数据结构(Java 队列模拟)本代码重在学习数据结构思路,代码完整性欠缺,请见谅
- Java之数据结构基础、线性表、栈和队列、数组和字符串,树—学习笔记
- Java数据结构与算法之栈和队列
- Java之美[从菜鸟到高手演变]之数据结构基础、线性表、栈和队列、数组和字符串
- Java数据结构之有效队列
- 数据结构——使用双端链表实现队列(java实现)