队列
数据结构:队列
特点:
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 }
输出:
可以看到在出队的时候,有人进队也不影响出队的顺序。