2017-2018-1 20162307 队列加分项
2017-10-22 00:02
232 查看
2017-2018-1 20162307 队列加分项
要求
1 用实现循环队列
2 参考PPT用循环队列打印杨辉三角
3 用JDB或IDEA单步跟踪排队情况,画出队列变化图,包含自己的学号信息
4 把代码推送到代码托管平台
5 把完成过程写一篇博客:重点是单步跟踪过程和遇到的问题及解决过程
6 提交博客链接
解题步骤
1.查看PPT1.想象队列为一个环形,让【0】在【N-1】之后
2.分析杨辉三角N行元素与N-1之间关系
2.参考15.6 CircularArrayQueue
public class CircularArrayQueue<T> implements Queue<T> { private final int DEFAULT_CAPACITY = 100; private int front, rear, count; private T[] queue; private T element; public CircularArrayQueue() { front = rear = count = 0; queue = (T[]) (new Object[DEFAULT_CAPACITY]); } public CircularArrayQueue (int initialCapacity) { front = rear = count = 0; queue = ( (T[])(new Object[initialCapacity]) ); } public void enqueue (T element) { if (size() == queue.length) expandCapacity(); queue[rear] = element; rear = (rear+1) % queue.length; count++; } public T dequeue() throws EmptyCollectionException { if (isEmpty()) throw new EmptyCollectionException ("queue"); T result = queue[front]; queue[front] = null; front = (front+1) % queue.length; count--; return result; } public T getElement() { return element; } public boolean isEmpty() { return (count == 0); } public int size() { return count; } public String toString() { String result = ""; int scan = 0; while(scan < count) { if(queue[scan]!=null) { result += queue[scan].toString()+"\n"; } scan++; } return result; } public void expandCapacity() { T[] larger = (T[])(new Object[queue.length *2]); for(int scan=0; scan < count; scan++) { front=(front+1) % queue.length; } front = 0; rear = count; queue = larger; } public T[] first() { return queue.clone (); } }
杨辉三角(Pascal)
相关文章推荐
- 20162307 2017-2018-1 《程序设计与数据结构》第3周学习总结
- 2017-2018-1 20155320加分项目——pwd的实现
- 20162307 2017-2018-1 《程序设计与数据结构》第1周学习总结
- 【博客加分成绩】2017-2018 第一学期201623班《程序设计与数据结构》(不定期更新)
- 2017-2018-1 20162307 Dijkstra算法
- 2017-2018-1 20162307 队列课下作业
- 20162307 2017-2018-1 《程序设计与数据结构》第10周学习总结
- 20162307 2017-2018-1 《程序设计与数据结构》第7周学习总结
- 20162307 2017-2018-1 《程序设计与数据结构》第9周学习总结
- 2017-2018-1 20155313 《信息安全系统设计基础》第九周加分项目
- 2017-2018-1 20155330 《信息安全系统设计基础》加分项目--实现mypwd
- 2017-2018-1 20155320 第五周 加分题-mybash的实现
- 2017-2018-1 20155338 加分项目——PWD的实现
- 2017-2018-1 20155215 第九周 加分项 PWD命令的实现
- 2017-2018-1 20155320 《信息安全系统设计基础》第四周学习总结(课堂实践补交+myhead与mytail加分项目)
- 20162307 2017-2018-1 《程序设计与数据结构》第8周学习总结
- 2017-2018-1 20155336 《信息安全系统设计基础》加分作业:实现mypwd
- 20162307 2017-2018-1 《程序设计与数据结构》第11周学习总结
- 2017-2018-1 20155315 《信息安全系统设计基础》加分作业:实现mypwd
- 2017-2018-1 20162307 实验五