实验三 队列实现杨辉三角_用队列实现杨辉三角
实验三 队列实现杨辉三角由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“用队列实现杨辉三角”。
实验3队列实现杨辉三角
一、实验目的1.熟悉队列的逻辑结构。2.回顾常用的存储结构。
3.掌握System.Collection.Queue类的使用方法。
4.熟悉队列的几种典型应用,用队列来解决一些编程问题。5.用循环队列实现杨辉三角并测试。
二、实验内容
杨辉三角是除了每一行的第一个元素和最后一个元素是1,其他元素的值是上一行与之相邻的两个元素之和。
1.实现循环队列类 a)两个构造函数 b)入队 c)出队
2.用顺序循环队列实现杨辉三角(一)程序分析 2.1存储结构
用一片连续的存储空间来存储循环队列中的数据元素,即采用顺序存储的方式。2.2 关键算法分析 1.出队
1)自然语言描述: a.判断队列是否空 b.如果队列空,抛出异常 c.如果队列不空,则
i.ii.iii.元素出队 移动对头指针 队列长度减1 代码描述:
publicvirtualobjectDequeue()//出队 {
} if(this._size == 0){ //队下溢
} object obj2 = this._array[this._head];//出队 this._array[this._head] = null;//删除出队元素 //移动队头指针
this._head =(this._head + 1)% this._array.Length;this._size--;return obj2;thrownewInvalidOperationException(“队列为空”);时间复杂度:O(1)2.入队
自然语言描述:
d.判断队列是否满 e.如果队列满,则扩容 f.如果队列不满,则
a)元素入队 b)移动队尾指针 c)队列长度加1 代码描述:
publicvirtualvoidEnqueue(objectobj)//入队 {
} if(this._size == this._array.Length)//当数组满员时 { //计算新容量
} this._array[this._tail] = obj;//入队
this._tail =(this._tail + 1)% this._array.Length;//移动队尾指针 this._size++;int capacity =(int)((this._array.Length * this._growFactor)/ 100L);if(capacity
} this.SetCapacity(capacity);//调整容量 capacity = this._array.Length + _MinimumGrow;时间复杂度:O(1)3.打印杨辉三角
自然语言描述: 要定义的变量:
1)行:n
2)列:
i.ii.空格 j 数值
k 3)左肩:left 4)右肩:right 代码描述:
三、程序运行结果
四、实验心得
1.调试时出现的问题及解决的方法
2.心得体会
3.下一步的改进