栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

03.手写队列源码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

03.手写队列源码

队列

队列(queue)是一种线性数据结构,队列中的元素只能先入先出(First In First Out,简称 FIFO)。
队列的出口端叫作队头(front),队列的入口端叫作队尾(rear)。

储存原理

队列这种数据结构既可以用数组来实现,也可以用链表来实现。

  • 数组实现

    用数组实现时,为了入队操作的方便,把队尾位置规定为最后入队元素的下一个位置用数组实现的队列叫做顺序队列。
操作
  • 入队
    入队(enqueue)就是把新元素放入队列中,只允许在队尾的位置放入元素,新元素的下一个位置将会成为新的队尾。

*出队
出队操作(dequeue)就是把元素移除队列,只允许在队头一侧移出元素,出队元素的后一个元素将会成为新的队头。

*总结:队尾入队,队头出队。

package dataStruct.queue;

import java.net.BindException;

public class QueueByArrary implements Queue{
    E [] arr = null;
    int head = 0; //队头
    int tail = 0; //队尾
    public QueueByArrary(int n){
        arr = (E[]) new Object[n];
    }

    @Override
    public int size() {
        return tail;
    }

    @Override
    public boolean isEmpty() {
        return tail == 0;
    }

    @Override
    public void clear() {
       arr = null;
    }

    
    @Override
    public void enQueue(E element)  {
        try {
            if (tail == arr.length) throw new IndexOutOfBoundsException("数组容量不够 :"+ tail +"数组长度为:"+ arr.length);
            arr[tail] = element;
            tail++;
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @Override
    public E deQueue() {
        if (head == tail ) return  null;
        E num = arr[head];
        head++;
        return num;
    }

    public static void main(String[] args) {
        QueueByArrary arrQueue = new QueueByArrary(5);
        arrQueue.enQueue(1);
        arrQueue.enQueue(2);
        arrQueue.enQueue(3);
        arrQueue.enQueue(4);
        arrQueue.enQueue(5);

        for (int i = arrQueue.head ; i < arrQueue.tail; i++){
            System.out.print(arrQueue.arr[i]+" ");
        }
        System.out.println();
        System.out.println("出队:"+arrQueue.deQueue());
        //剩余队列
        for (int i = arrQueue.head ; i < arrQueue.tail; i++){
            System.out.print(arrQueue.arr[i]+" ");
        }
    }
}

测试结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644125.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号