zoukankan      html  css  js  c++  java
  • 队列课下作业

    队列课下作业

    作业要求

    • 1 补充课上没有完成的作业
    • 2 参考15.3节,用自己完成的队列(链队,循环数组队列)实现模拟票务柜台排队功能
    • 3 用JDB或IDEA单步跟踪排队情况,画出队列变化图,包含自己的学号信息
    • 4 把代码推送到代码托管平台
    • 5 把完成过程写一篇博客:重点是单步跟踪过程和遇到的问题及解决过程
    • 6 提交博客链接
    一、补充课上没有完成的作业:将《Java程序设计与数据结构教程(第二版)》15章的15.5链表队列的代码中的dequeue()、first()、isempty()、size()、toString()实现:
    package ch15;
    
    /**
     * Created by Funny_One on 2017/10/10.
     */
    public class LinkedQueue<T> implements Queue<T> {
        private int count;
        private LinearNode<T> front,rear;
    
        //Creates an empty queue
        public LinkedQueue(){
            count =0;
            front = rear = null;
        }
    
        @Override
        public void enqueue(T element) {
            LinearNode<T> node = new LinearNode<T>(element);
            if(count == 0){
                front = node;
            }else {
                rear.setNext(node);
            }
            rear = node;
            count++;
        }
    
        @Override
        public T dequeue() throws EmptyCollectionException{
            T element = front.getElement();
            if(count == 1){
                front = rear = null;
            }else {
                front = front.getNext();
            }
            count--;
            return element;
        }
    
        @Override
        public T first() {
            T element = front.getElement();
            return element;
        }
    
        @Override
        public boolean isEmpty() {
            boolean judge=false;
            if (count == 0){
                judge = true;
            }
            return judge;
        }
    
        @Override
        public int size() {
            return count;
        }
    
        @Override
        public String toString(){
            String str1 = "<The head of the queue>";
            LinearNode<T> node = new LinearNode<T>();
            node = front;
            while (node!=null){
    
                if(node.getNext()==null){
                    str1 += " "+ node.getElement() + " <The tail of the queue>";
                }else {
                    str1 += " "+node.getElement()+",";
                }
                node = node.getNext();
            }
            return  str1;
        }
    }
    
    
    二、参考15.3节,用自己完成的队列(链队,循环数组队列)实现模拟票务柜台排队功能

    三、用JDB或IDEA单步跟踪排队情况,画出队列变化图,包含自己的学号信息

    队列分析(只列取至有两位售票员的情况)

    处理一个顾客需要的时间是120秒,下一个顾客距离上一个顾客到达的时间是15秒。

    当一个售票员的时候:

    当只有一个售票员的时候,顾客都得到这个售票员这里买票,根据上面的条件,当该售票员处理一个顾客的时候,后面可以来8个顾客等待(120/15)。用99除以8(由于第一个到的已经开始在处理,所以要100-1),可以得到12余3,根据该情况,需要处理13个顾客后才能100个顾客全部到齐。

    当两个售票员的时候:

    根据代码的调试,顾客排队的顺序是顾客的数量平均分给顾客,当两个人的时候,可以理解成一个售票员处理50名顾客,用49除以8,可以得到6余1,就是说要处理7个顾客后50人才能到齐。

    后面的情况大同小异,可以如此类推。

  • 相关阅读:
    ElasticSearch(5.5.2)在java中的使用
    ElasticSearch基础
    Linux中profile、bashrc、bash_profile之间的区别和联系
    linux上安装启动elasticsearch-5.5.1完整步骤
    linux 解压zip文件
    Ubuntu Linux 环境变量PATH设置
    sudo 用户添加
    SecureCRT5 中文乱码
    韩美林的养生秘诀——“懒人操”
    实验二:线性表的实验【物联网1132-11】
  • 原文地址:https://www.cnblogs.com/VersionP1/p/7675408.html
Copyright © 2011-2022 走看看