博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
队列加分项:杨辉三角
阅读量:5328 次
发布时间:2019-06-14

本文共 3071 字,大约阅读时间需要 10 分钟。

要求:

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

分析过程:

  • 杨辉三角的构造,其两腰上的数都唯一,其余每个数都为其上方左右两数之和
  • 为计算方便首尾加0
  • 具体思路和老师的PPT大概一致(附图)
    1062727-20171022150228912-1373644202.png

代码一:CircularArrayQueue

public class CircularArrayQueue
implements Queue
{ private final int DEFAULT_CAPACITY = 10000; private int front, rear, size; private T[] queue; //-----------------------------------------------------------------// Creates an empty queue using the default capacity.//----------------------------------------------------------------- public CircularArrayQueue() { front = rear = size = 0; queue = (T[]) (new Object[DEFAULT_CAPACITY]); } //-----------------------------------------------------------------// Adds the specified element to the rear of this queue, expanding// the capacity of the queue array if necessary.//----------------------------------------------------------------- public void enqueue (T element) { if (size == queue.length) expandCapacity(); queue[rear] = element; rear = (rear+1) % queue.length; size++; } public void expandCapacity() { T[] larger = (T[])(new Object[queue.length*2]); for (int index = 0; index < size; index++) larger[index] = queue[(front+index) % queue.length]; front = 0; rear = size; queue = larger; } @Override public T dequeue() { if (size == 0) throw new EmptyCollectionException("queue"); T d = queue[front]; queue[front] = null; front = (front+1)%queue.length; size--; return d; } @Override public T first() { return queue[front]; } @Override public boolean isEmpty() { boolean course = false; if(size ==0){ course = true; } return course; } @Override public int size() { return size; } @Override public String toString(){ String result = ""; int scan = 0; while(scan < size) { if(queue[scan]!=null) { result += queue[scan].toString()+"\n"; } scan++; } return result; }}

代码二:杨辉三角

import java.util.Scanner;public class YangHuiSanJiao {    public static void main(String[] args) {        System.out.println("输入行数:");        Scanner sca = new Scanner(System.in);        CircularArrayQueue qu = new CircularArrayQueue();        qu.enqueue(0);        qu.enqueue(1);        int b = sca.nextInt();        int z=0,j= 0,d;        System.out.println(1);        for (int a = 1;a<= b - 1; a++){            qu.enqueue(0);            for (int ai =1;ai< qu.size();ai++){                z= (int) qu.first();                qu.dequeue();                j = (int) qu.first();                d = z+j;                qu.enqueue(d);                System.out.print(d + " ");            }            System.out.println();        }    }}

单步跟踪结果截图:

1062727-20171022152438443-814055962.png

转载于:https://www.cnblogs.com/1zhjch/p/7709916.html

你可能感兴趣的文章
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>