• [数据结构]-数组实现队列(普通)


    [数据结构]-数组实现队列(普通)

    1 首指针

    2 尾指针

      不是循环队列,将前方空出来的位置,依次向前移动

    package com.cn.jichu.day09;
    
    public class Queue<E> {
        /**
         * 数组
         */
        private E[] data;
        /**
         * 首指针
         */
        private int head;
        /**
         * 尾指针
         */
        private int tail;
        /**
         * 当前队列大小
         */
        private int size;
    
        public Queue(int size) {
            data = (E[]) new Object[size];
            this.size = size;
    
        }
    
        public void enqueue(E e){
            if(tail == size){
                //当尾部满了,头未移动那么说明满了
                if(head == 0){
                    throw new IllegalArgumentException("当前队列满了");
                }else{
                    //头移动了,说明前方有位置
                    //一下操作,为向前移动
                    for(int i = head;i<tail;i++){
                        data[i - head] = data[i];
                    }
                    tail = tail - head;
                    head = 0;
                }
            }
    
            data[tail] = e;
            tail ++;
        }
    
        public E dequeue(){
            if(head == tail){
                throw new IllegalArgumentException("当前队列没有元素可以出列了");
            }
            E e = data[head];
            data[head] = null;
            head ++;
            return e;
        }
    
    
        @Override
        public String toString(){
            StringBuilder ret = new StringBuilder();
            ret.append("queue  head[");
            for(int i=0;i<data.length;i++){
                ret.append(data[i] + " ");
            }
            ret.append(" ] tail");
            return ret.toString();
        }
    }
  • 相关阅读:
    do-while-zero 结构在宏定义中的应用
    关于运放的几个概念
    Spring MVC 学习第一篇
    1229递归下降
    有限自动机的构造与识别
    11.11评论
    文法分析2
    文法分析
    201406114215+林志杰+文法分析
    词法分析实验总结
  • 原文地址:https://www.cnblogs.com/anny0404/p/10654663.html
Copyright © 2020-2023  润新知