5.1、顺序队列(java实现)

1、实现代码

public class SeqQueue {
    private final int MaxSize = 8;
    private int rear;  //队尾指针
    private int front;  //队头指针
    private int  size;  //计数器
    private Object seqQueueArray[];

    /**
     * 初始化
     */
    public SeqQueue() {
        this.size = 0;
        this.front = 0;
        this.rear = 0;
        seqQueueArray = new Object[MaxSize];
    }

    public boolean isEmpty(SeqQueue seqQueue) {
        if (seqQueue.size == 0){
            return true;
        }
        return  false;
    }

    public boolean isFull(SeqQueue seqQueue) {
        if (seqQueue.size > 0 && seqQueue.rear == seqQueue.front){
            return true;
        }
        return  false;
    }

    public void queueAppend(SeqQueue seqQueue,Object element) {
        if (isFull(seqQueue)){
            System.out.println("已满,无法插入");
            return;
        }
        System.out.println(element+"元素入队列");
        seqQueue.seqQueueArray[seqQueue.rear] = element;
        seqQueue.rear = (seqQueue.rear +1 )%MaxSize;
        seqQueue.size++;
    }

    public void queueDelete(SeqQueue seqQueue) {
        if (isEmpty(seqQueue)){
            System.out.println("已空,无法出队列");
            return;
        }
        System.out.print(seqQueue.seqQueueArray[seqQueue.front]+" ");
        seqQueue.front = (seqQueue.front +1)%MaxSize;
        seqQueue.size--;
    }

    public void getFront(SeqQueue seqQueue) {
        if (isEmpty(seqQueue)){
            System.out.println("已空,无法获取队列头");
            return;
        }
        System.out.println("队头元素: "+ seqQueue.seqQueueArray[seqQueue.rear]);
    }


    public static void main(String[] args) {
        SeqQueue seqQueue = new SeqQueue();
        seqQueue.getFront(seqQueue);
        seqQueue.queueDelete(seqQueue);

        for (int i = 0; i < 9; i++) {
            seqQueue.queueAppend(seqQueue,i);
        }
        System.out.println("===========");
        seqQueue.queueDelete(seqQueue);
        System.out.println("===========");

        int number = seqQueue.size;
        for (int i = 0; i < number; i++) {
            seqQueue.queueDelete(seqQueue);
        }
        System.out.println();
        seqQueue.queueDelete(seqQueue);

    }
}

2、实现结果

已空,无法获取队列头
已空,无法出队列
0元素入队列
1元素入队列
2元素入队列
3元素入队列
4元素入队列
5元素入队列
6元素入队列
7元素入队列
已满,无法插入
===========
0 ===========
1 2 3 4 5 6 7 
已空,无法出队列

猜你喜欢

转载自www.cnblogs.com/karrya/p/11206438.html