美文网首页模型与算法
从屌丝到架构师的飞越(数据结构篇)-队列

从屌丝到架构师的飞越(数据结构篇)-队列

作者: 走着别浪 | 来源:发表于2019-06-30 09:02 被阅读8次

    一.介绍

    队列(Queue)简称队,它也是一种运算受限的线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除。我们把进行插入的一端称作队尾(rear),进行删除的一端称作队首(front)。

    向队列中插入新元素称为进队或入队,新元素进队后就成为新的队尾元素;从队列中删除元素称为离队或出队,元素离队后,其后继元素就成为队首元素。由于队列的插入和删除操作分别是在各自的一端进行的,每个元素必然按照进入的次序离队,所以又把队列称为先进先出表(First In First Out, 简称FIFO)。

    比如:我们去银行办理业务,去坐车都需要排队,新生入学站成一排军训,这些都需要用到我们的队列。

    二.知识点介绍

    1、队列原理

    2、Queue用法

    三.上课对应视频的说明文档

    1、队列原理

    (1) 图一:当我们队列为空的时候,我们放入了元素10,20,30,这个过程叫做入队的过程,放入元素后,我们的队首和队尾都发生了变化,队首是10元素,队尾是30元素。

    (2) 图二:当10元素移出后,我们的操作过程是出队的过程,那么我们的队首发生了变化,队首为20元素,队尾不变

    (3) 图三:如果我们在次写入一个元素40后,我们的队首不变,队尾发生了变化,队尾元素为40元素。

    2、Queue用法

    offer()添加一个元素并返回true,如果队列已满,则返回false

    poll()移除并返问队列头部的元素,如果队列为空,则返回null

    peek()返回队列头部的元素,如果队列为空,则返回null

    代码示例:

    import java.util.*;

    public class QueueTest{

    public static void main(String args[]){

    Queue q=new LinkedList();

    q.offer("A");

    q.offer("B");

    q.offer("C");

    System.out.println(q.peek());//获取队首元素

    q.offer("D");

    System.out.println(q.poll());//移出并获取队首元素

    System.out.println(q);

    }

    }

    代码示例2:

    import java.util.LinkedList;

    import java.util.Queue;

    public class QueueTest {

    public static void main(String[] args) {

    //add()和remove()方法在失败的时候会抛出异常(不推荐)

    Queue<String> queue = new LinkedList<String>();

    //添加元素

    queue.offer("a");

    queue.offer("b");

    queue.offer("c");

    queue.offer("d");

    queue.offer("e");

    //迭代元素

    for(String q : queue){

    System.out.println(q);

    }

    System.out.println("===");

    System.out.println("poll="+queue.poll()); //返回第一个元素,并在队列中删除

    for(String q : queue){

    System.out.println(q);

    }

    System.out.println("===");

    System.out.println("element="+queue.element()); //返回第一个元素

    for(String q : queue){

    System.out.println(q);

    }

    System.out.println("===");

    System.out.println("peek="+queue.peek()); //返回第一个元素

    for(String q : queue){

    System.out.println(q);

    }

    }

    }

    相关文章

      网友评论

        本文标题:从屌丝到架构师的飞越(数据结构篇)-队列

        本文链接:https://www.haomeiwen.com/subject/izjucctx.html