zoukankan      html  css  js  c++  java
  • 队列 ADT

      队列(queue)是插入在表的末端,删除是在表的开头。对队列的基本操作是 enqueue(入队)和 dequeue(出队),入队是在表的末端(队尾)插入一个元素,出队是在表的开头(队头)删除一个元素

      队列模型说明:通过 enqueue 向队列输入,通过 dequeue 向队列输出

      

      •  队列的数组实现
        public class ArrayQueue<T> {
        
            //设置为2是为了检验ensureCapacity()方法的正确性
            private Object[] data = new Object[2];
        
            private int size;
          //是否空队列
            public boolean empty() {
                return size == 0;
            }
        
            //入队
            public void enqueue(T t) {
                ensureCapacity();
                data[size++] = t;
            }
        
            //出队
            public T dequeue() {
                T t = (T) data[0];
                for (int i = 0; i < size - 1; i++) {
                    data[i] = data[i + 1];
                }
                size--;
                return t;
            }
        
            //确保容量
            private void ensureCapacity() {
                if (size < data.length) {
                    return;
                }
                data = Arrays.copyOf(data, data.length + (data.length >> 1));
            }
        
            public static void main(String[] args) {
                ArrayQueue<String> queue = new ArrayQueue<>();
                char c[] = "Array Queue".toCharArray();
                for (int i = 0; i < c.length; i++) {
                    queue.enqueue(String.valueOf(c[i]));
                }
                while (!queue.empty()) {
                    System.out.print(queue.dequeue());
                }
            }
        }
    • 队列的链表实现
  • 相关阅读:
    Golang 归并排序(MergeSort)
    Kubernetes-PV/PVC
    Python 快速排序(QuickSort)
    Kubernetes-Service
    Docker 架构
    Deployment 工作流程
    http响应code-405
    python实现计数累增的方法
    mysql使用记录、持续更新
    mac开发环境-brew、xcode
  • 原文地址:https://www.cnblogs.com/cmdra/p/5940167.html
Copyright © 2011-2022 走看看