zoukankan      html  css  js  c++  java
  • 线性结构--队列

       队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

    创建队列类

     1 package com.feimao.com.feimao.a2.test;
     2 
     3 public class MyQueue {
     4     int[] elements;
     5     public  MyQueue(){
     6         elements = new int[0];
     7     }
     8     //入队
     9     public void add(int element){
    10         //创建一个新的数组
    11         int[] newArr = new int[elements.length + 1];
    12         //把原数组中的元素复制到新数组
    13         for(int i = 0 ; i < elements.length ; i++){
    14             newArr[i] = elements[i];
    15         }
    16         //把添加的元素放入到新数组
    17         newArr[elements.length] = element;
    18         //使用新数组替换旧数组
    19         elements = newArr;
    20     }
    21     //出队
    22     public int pop(){
    23         int element = elements[0];
    24         int[] newArr = new int[elements.length - 1];
    25         for(int i = 0 ; i < newArr.length ; i++){
    26             newArr[i] = elements[i+1];
    27         }
    28         elements = newArr;
    29         return element;
    30     }
    31     //判断队列是否为空
    32     public boolean isEmpty(){
    33         return elements.length == 0;
    34     }
    35 
    36 }

    创建队列的测试类

     1 package com.feimao.com.feimao.a2.test;
     2 
     3 public class MyQueueTest {
     4     public static void main(String[] args){
     5         MyQueue mq = new MyQueue();
     6         mq.add(1);
     7         mq.add(2);
     8         mq.add(3);
     9         System.out.println(mq.pop());
    10         System.out.println(mq.isEmpty());
    11     }
    12 }

    结果:

  • 相关阅读:
    MySQL Server类型的MySQL 客户端的下载、安装和使用
    Sqoop学习笔记
    Sqoop安装部署
    Hive学习笔记
    HBase构架原理
    HBase HA分布式集群搭建
    IntelliJ IDEA(Community版本)本地模式的下载、安装及其使用
    Scala本地安装
    CALayer的隐式动画和显式动画
    简易动画两种执行方式
  • 原文地址:https://www.cnblogs.com/feimaoyuzhubaobao/p/10165783.html
Copyright © 2011-2022 走看看