队列加分项

实验要求

1 用实现循环队列
2 参考PPT用循环队列打印杨辉三角
3 用JDB或IDEA单步跟踪排队情况,画出队列变化图,包含自己的学号信息
4 把代码推送到代码托管平台
5 把完成过程写一篇博客:重点是单步跟踪过程和遇到的问题及解决过程
6 提交博客链接

实验准备

  • 1、杨辉三角特点
    (1)int数组中元素默认值为 0
    (2)然后每一次打印新的一行的元素的时候:
    新的特定位置的元素 = 该位置原来的元素 + 该位置的前一个位置的值
    (3)参考老师上课给的ppt

  • 2、分别定义行数和列数,每行第一列和最后一列为1

for (int i = 1; i <= n ; i++) {
            for (int j = 1; j < i+1; j++) {

  • 3、设置初始值
arr.enqueue(1);
        arr.enqueue(0);

  • 4、前一行相邻两元素之和
int num1 = (int) arr.dequeue();
                int num2 = (int) arr.first();
                int num = num1 + num2;

实验截图

代码实现

public class yhsj {
    public static void main(String[] args) throws Stack.EmptyCollectionException {
        int n = 0;
        CircularArrayQueue arr = new CircularArrayQueue(n + 2);
        System.out.println("how many lines you want:");
        Scanner scan = new Scanner(System.in);
        n = scan.nextInt();

        arr.enqueue(1);
        arr.enqueue(0);
        System.out.print(" "+"\n");
        for (int i = 1; i <= n ; i++) {
            for (int j = 1; j < i+1; j++) {
                int num1 = (int) arr.dequeue();
                int num2 = (int) arr.first();
                int num = num1 + num2;
                System.out.print(num );
                arr.enqueue(num);
            }
            arr.enqueue(0);
            System.out.println();
        }
    }
}

实验中遇到的问题

  • 打印出的杨辉三角存在格式问题,数之间没有间距(如下图)

  • 解决方法

通过添加一个条件判断语句来解决间距问题,如下图

for(int a = 0; a<j ; a++)
         System.out.print(" ");

posted @ 2017-10-22 23:30  20162306陈是奇  阅读(112)  评论(0编辑  收藏  举报