您的位置:首页 > 其它

使用数组实现队列

2016-06-03 10:25 399 查看
队列

使用数组实现队列

/*
 * 列队类
 */
public
class
MyQueue {
    //底层使用数组
    private
long
[] arr;
    //有效数据的大小
    private
int
elements;
    //队头
    private
int
front;
    //队尾
    private
int
end;
   
    /**
     * 默认构造方法
     */
    public MyQueue() {
        arr = new
long
[10];
        elements = 0;
        front = 0;
        end = -1;
    }
   
    /**
     * 带参数的构造方法,参数为数组的大小
     */
    public MyQueue(int maxsize) {
        arr = new
long
[maxsize];
        elements = 0;
        front = 0;
        end = -1;
    }
   
    /**
     * 添加数据,从队尾插入
     */
    public
void
insert(long value) {
        arr[++end] = value;
        elements++;
    }
   
    /**
     * 删除数据,从队头删除
     */
    public
long
remove() {
        elements--;
        return
arr[front++];
    }
   
    /**
     * 查看数据,从队头查看
     */
    public
long
peek() {
        return
arr[front];
    }
   
    /**
     * 判断是否为空
     */
    public
boolean
isEmpty() {
        return
elements == 0;
    }
   
    /**
     * 判断是否满了
     */
    public
boolean
isFull() {
        return
elements == arr.length;
    }
}
 

public
class
TestMyQueue {
    public
static void
main(String[] args) {
        MyCycleQueuemq = newMyCycleQueue(4);
        mq.insert(23);
        mq.insert(45);
        mq.insert(13);
        mq.insert(1);
       
        System.out.println(mq.isFull());
        System.out.println(mq.isEmpty());
       
        System.out.println(mq.peek());
        System.out.println(mq.peek());
       
        while (!mq.isEmpty()) {
            System.out.print(mq.remove() +
" ");
        }
        System.out.println();
       
        mq.insert(23);
        mq.insert(45);
        mq.insert(13);
        mq.insert(1);
       
        while (!mq.isEmpty()) {
            System.out.print(mq.remove() +
" ");
        }
    }
}
运行结果:

true
false
23
23
2345 13 1
2345 13 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  队列的实现