• 线性结构--队列


       队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(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 }

    结果:

  • 相关阅读:
    PWNABLE Silver Bullet
    PWNABLE hacknote
    PWNABLE calc
    vue如何监听浏览器的返回,并进行操作
    字符串的拼接和截取例子
    关于vue在url上向后台动态传递参数
    鼠标移动到超链接上时变为手型
    vue.js 单选框根据v-bind:disabled="条件" 来动态修改多个单选框是否只读
    关于node重装后启动项目报错
    关于在下名字问题的研究报告
  • 原文地址:https://www.cnblogs.com/feimaoyuzhubaobao/p/10165783.html
Copyright © 2020-2023  润新知