队列

数据结构:队列

特点:

  1):先进先出。

  2):在队头删除元素。在队尾添加数据。

  3):顺序栈是数组实现 的。

队列就好比我们生活中排队买东西一样。先排队的人先买。买完走人。后来的人到后面排队去。

我们看下代码的实现:

 1 package com.data_Structure.array;
 2 
 3 public class Queue {
 4     int[] elements;
 5     public Queue(){
 6         elements = new int[0];
 7     }
 8     //进队
 9     public  int[] 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         return elements;
21     }
22 
23     //出队
24     public int poll(){
25         //因为出队的时候,每次都是队头的元素。
26         int element = elements[0];
27         //创建数组,然后把旧的放到新创建的数组中。
28         int[] newArr=new int[elements.length-1];
29         for(int i=0;i<newArr.length;i++){
30             newArr[i]=elements[i+1];
31         }
32         //替换
33         elements=newArr;
34         return element;
35     }
36 
37     public static void main(String[] args) {
38         Queue queue = new Queue();
39         queue.add(9);
40         queue.add(8);
41         queue.add(7);
42 
43         for (int i : queue.elements) {
44             System.out.println("入队的元素:"+i);
45         }
46         System.out.println("出队的元素:"+queue.poll());
47         queue.add(10);
48         System.out.println("出队的元素:"+queue.poll());
49         System.out.println("出队的元素:"+queue.poll());
50     }
51 }
View Code

输出:

可以看到在出队的时候,有人进队也不影响出队的顺序。

原文地址:https://www.cnblogs.com/bulrush/p/9929349.html