zoukankan      html  css  js  c++  java
  • 数据结构之队列java版

    //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;
        }
    }
  • 相关阅读:
    【应用】SVG饼状图
    【应用】图片翻转js
    userData IE
    cookie
    Local storage htm5
    全局ajax事件
    jQuery ajax序列化函数
    jQuery ajax中的get请求方法汇总
    $.ajax()
    nodejs安装错误
  • 原文地址:https://www.cnblogs.com/enjoyall/p/6013105.html
Copyright © 2011-2022 走看看