上篇文章,我们已经完成了栈的学习,下面,我们将进行队列的学习,话不多说,上正文~
1.队列
概念
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)
队列每次存数据的时候,都会在队尾进入存数据,出数据的时候会在队头出,如图
不要忘记,队列是先进先出 的
2.队列的模拟实现
我们可以把双向链表当成队列,此时此刻,可以从队尾进,队头出,如图
双链表如此,单链表亦然,如图
这里还有一个要注意的点,队列分为普通队列(queue)和双端队列 (dequeue),普通队列是队尾进队头出,而双端队列顾名思义就是两端都可以进,两端都可以出,如图
下面我们先实例化一个队列代码如下
public class Main {
public static void main(String[] args) {
Queue<Integer> queue1= new LinkedList<>();
Queue<Integer> queue2 = new LinkedList<>();
}
}
这里,我们不要忘记导入类
import java.util.LinkedList; import java.util.Queue;
3.队列方法的学习
逻辑讲清楚了,下面我们来熟悉下队列的方法,如图
方法不多,我们依次进行调用
代码如下
1.入队列
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue1= new LinkedList<>();
Queue<Integer> queue2 = new LinkedList<>();
queue1.offer(1);
queue1.offer(2);
queue1.offer(3);
System.out.println("==========");
}
}
结果
2.出队列
代码如下
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue1= new LinkedList<>();
Queue<Integer> queue2 = new LinkedList<>();
queue1.offer(1);
queue1.offer(2);
queue1.offer(3);
System.out.println(queue1.poll());
}
}
运行结果
3.获取队头元素
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue1= new LinkedList<>();
Queue<Integer> queue2 = new LinkedList<>();
queue1.offer(1);
queue1.offer(2);
queue1.offer(3);
System.out.println(queue1.poll());
System.out.println(queue1.peek());
}
}
运行结果
4.获取有效元素个数
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue1= new LinkedList<>();
Queue<Integer> queue2 = new LinkedList<>();
queue1.offer(1);
queue1.offer(2);
queue1.offer(3);
System.out.println(queue1.poll());
System.out.println(queue1.peek());
System.out.println(queue1.size());
}
}
运行结果
5.判断队列是否为空
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue1= new LinkedList<>();
Queue<Integer> queue2 = new LinkedList<>();
queue1.offer(1);
queue1.offer(2);
queue1.offer(3);
System.out.println(queue1.poll());
System.out.println(queue1.peek());
System.out.println(queue1.size());
System.out.println(queue1.isEmpty());
}
}
运行截图
那么,本篇文章就到此为止啦,下一篇我们将模拟队列的实现,还会讲解栈的例题~敬请期待叭~觉得小编讲的还可以的可以留个关注支持一下~谢谢观看~