题目

在循环队列中设置一个循环队列flag,当flag=rear且flag=0时为队空,当flag=1,flag=rear时队满。请编写相应的入队和出队算法。(假设队头元素指向队头位置的前一个元素)。

    static int QueueSize = 100;static class CirQueue{int[] data = new int[QueueSize];int front,rear; //队头队尾指针int flag;public void Enqueue(int x);public int DeQueue();}

分析

  1. 队列的性质:先进先出,后进后出。
  2. 封装数组进行队列实现
  3. 循环队列

Java实现

    static int QueueSize = 100;static class CirQueue{int[] data = new int[QueueSize];int front,rear; //队头队尾指针int flag;public void Enqueue(int x){if (flag != 1){data[rear] = x;if (rear+1 == QueueSize) rear = 0;else rear++;if (front == rear) flag = 1;else flag = -1;     }if (flag == 1){System.out.println("队列以满");}}public int DeQueue(){if (flag != 0){int num = data[front];data[front] = 0;if (front+1 == QueueSize) front = 0;else front++;if (front == rear) flag = 0;else flag = -1;         return num;}if (flag == 0) {System.out.println("队列以空");}return 0;}};

测试

    public static void main(String[] args){CirQueue queue = new CirQueue();//入队测试int k = 0;while (queue.flag != 1) {queue.Enqueue(k++);System.out.println("头节点:"+queue.front);System.out.println("尾节点:"+queue.rear);}//满队列测试for (int i = 101; i < 110; i++) {queue.Enqueue(i);}//出队测试for (int i = 0; i < 10; i++) {System.out.println("出队元素:"+queue.DeQueue());System.out.println("头节点:"+queue.front);System.out.println("尾节点:"+queue.rear);}//空队测试for (int i = 0; i < 100 ; i++) {System.out.println("出队元素:"+queue.DeQueue());System.out.println("头节点:"+queue.front);System.out.println("尾节点:"+queue.rear);}}
}

某校2019专硕编程题-队列相关推荐

  1. 某校2019专硕编程题-前10名学生成绩

    问题 输入学生成绩,并按输入顺序编号,再按成绩进行降序排序,输出前10名的学生成绩,如果学生人数不足十人则只输出仅有的学生成绩. 例如 输入20 30 40 50 70 -1(结束),输出:X号,XX ...

  2. 某校2019专硕编程题-排序

    题目 任意输入四个数,要求将该四个数进行由大到小排序并输出. Java实现 冒泡排序 public static void test03(){Scanner sc = new Scanner(Syst ...

  3. 某校2019专硕编程题-完全数

    题目 一个数如果恰好等于它的因子之和,这个数被称为"完全数". 例如6的因子为1,2,3 而6 = 1+2+3.编写程序找出1000内的所有完全数,并按照以下格式输出:6 its ...

  4. 某校2019专硕编程题-平方根

    问题 从键盘上输入一个小于1000的整数,要求输出它的平方根(如果平方根不是正数,则输出其整数部分).要求在输入数据后先对其检查是否为小于1000的正数.若不是则要求重新输入. Java实现 publ ...

  5. 某校2019专硕编程题-素数和

    题目 输入正整数,输出比n大的5个最小素数之和.素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因素.例如,输入1,则输出28. Java实现 public static void test ...

  6. 某校2019专硕编程题-简易计算器

    题目 编写一个简易计算器,要求具备加减乘除和退出的功能. 分析 进入界面 根据不同的指令调用加减乘除方法 输出结果 Java实现 public static void test09(){Scanner ...

  7. 某校2019专硕编程题-学生成绩评级

    题目 学生成绩根据不同的分数段可以对应不同的分数等级,例如90 - 100 分为 A:80 - 90 分为B:70 - 79分为C:60 - 69分为D:60分以下为E.要求输入百分制的学生成绩,且输 ...

  8. 某校2019专硕编程题-逆序输出奇数

    题目 输入8个正整数,逆序输出其中的奇数.例如:输入1 2 3 4 5 6 7 8,应输出 7 5 3 1 Java实现 public static void test01(){Scanner sc ...

  9. 某校2018专硕编程题-方阵求和

    问题 编程题:输入整数N(N<=2<=10),再输入N*N方阵中的全部数据,计算方正每列元素的最大值之和,并输出. 例如:4*4的方阵数据如下: 1 2 3 4 5 6 7 2 6 7 8 ...

最新文章

  1. CNCF案例研究:奇虎360
  2. 简单工厂模式(StaticFactoryMethod)
  3. jquery 中 fn.apply(this, arguments)是什么函数?有什么作用?能举个例子吗
  4. 电源芯片选择DC/DC还是LDO?《转》
  5. js的正则表达,只允许数字和特殊
  6. Java复习第三天-静态方法
  7. 解决springmvc加载JS,CSS等文件问题【转】
  8. fir.im分发平台安卓苹果应用下载二维码合并步骤
  9. volatility内存取证
  10. 微信小程序布局技巧(二)
  11. 对偶式与反函数_.数字逻辑.对偶式与反函数.数字逻辑下,对偶式与反函数和原函数的关系是什么?...
  12. 如何找对另一半--第一章 品格与择偶关系
  13. 3D动画展示--3D图片旋转展示
  14. 黄金矿工java_欢乐黄金矿工游戏
  15. 从12306.cn谈大网站架构与性能优化
  16. 医院挂号系统代码_人脸识别+身份绑定!高科技精准打击医院号贩子
  17. dax和m的区别_德国股票指数DAX, MDAX与TecDAX的区别是什么?
  18. “五年饮冰,难凉热血”,一名专科生的求学历程
  19. 计算机拒绝目标用户,由于目标计算机主动拒绝,无法建立连接127.0.0.1:8082
  20. 基于Docker快速搭建蜜罐Dionaea(30)

热门文章

  1. xtrabackup安装、进行全量备份增量备份
  2. outlook单独下载_在单独的Windows中打开不同的Outlook功能以提高生产率
  3. 与Java的初吻_ The First Kiss On Java
  4. 小程序直播,助力教育机构获客
  5. 猫和路由器是完全两码事!!!!
  6. groovy脚本执行与优化
  7. Jenkins 环境变量的作用范围及设置与获取,包括在Sharedlibraries与pipelin之间的传递
  8. 浏览器支持字体大小情况 以及 Chrome设置小于12px的字体的处理方案
  9. JSP文件验证登陆饭否网!
  10. CocoaPods公有库和私有库制作