c++ 数据结构 用循环队列实现杨辉三角形的打印
2016-12-05 20:11
916 查看
1.循环队列
(1)功能:
(2)具体实现:
3.主函数:
(1)功能:
# include<iostream> using namespace std; # include<assert.h> class SeqQueue{ private: int* elements; //存放队列元素的数组 int rear,front; //队尾指针和对头指针 int maxSize; //队列可容纳的最大元素个数 public: SeqQueue(int sz=10); //构造函数 ~ SeqQueue(){ delete[]elements;} //析构函数 bool EnQueue(const int x); //进队函数 bool DeQueue(int& x); //出队函数 bool getFront(int& x); //取队头元素 bool isEmpty(){return (front==rear)?true:false;} //判断队空 bool isFull(){return ((rear+1)%maxSize==front)?true:false;} //判断队满 };
(2)具体实现:
# include"SeqQueue.h" # include<iostream> using namespace std; SeqQueue::SeqQueue(int sz):rear(0),front(0),maxSize(sz){ elements=new int[maxSize]; assert(elements!=NULL); //断言机制:如果不满足括号内条件将终止程序的执行 } bool SeqQueue::EnQueue(const int x){ if(isFull()) return false; else elements[rear]=x; rear=(rear+1)%maxSize; //加一再取余是为了rear指向队列最后一个元素(下标maxSize-1),再进一下标就到了0 return true; } bool SeqQueue::DeQueue(int& x){ if(isEmpty()) return false; else x=elements[front]; front=(front+1)%maxSize; return true; } bool SeqQueue::getFront(int& x){ if(isEmpty()) return false; else x=elements[front]; return true; }2.打印函数:
# include"SeqQueue.h" # include<iostream> using namespace std; void YANGVI(int n){ int j,k; int s=0,t,sum; SeqQueue Q(n+3); Q.EnQueue(1); Q.EnQueue(1); for(j=1;j<=n;j++){ //循环n次 cout<<endl; Q.EnQueue(0); for(k=1;k<=j+2;k++){ //输出第n行的n+1个元素 Q.getFront(t); sum=s+t; Q.EnQueue(sum); Q.DeQueue(s); if(k!=j+2) cout<<s<<" "; } } }
3.主函数:
# include"YANGVI.h" # include<iostream> using namespace std; int main(){ int n; cout<<"please put in the line number:"<<endl; cin>>n; YANGVI(n); system("pause"); return 0; }
相关文章推荐
- 【c++版数据结构】之循环队列的实现
- 【C++数据结构】数组循环队列的实现
- C++数据结构--循环队列的实现
- 数据结构队列C++实现 链式和循环
- 数据结构-队列:循环队列与链队列的C++模板类实现
- 数据结构队列C++实现 链式和循环
- 数据结构学习之循环队列c++实现
- 数据结构学习之循环队列的另一种c++实现
- 队列(queue)的链表(list)实现及循环数组(circular array)实现 C++实现
- C++类模板 实现循环队列的顺序存储结构算法 《数据结构》(北京科海) 部分摘抄 自己编写实现
- 数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
- c++实现数据结构八 链式队列
- c++实现数据结构七 顺序循环队列
- [数据结构]C++队列实现和队列简介
- 【自己动手写数据结构】 -- 循环队列的表示与实现
- 数据结构:双向链表实现队列与循环链表
- C++类模板 实现双向循环链表的基本算法 《数据结构》(C++版 北京科海)中摘抄
- 数据结构学习系列三-单向循环链表(c++实现且应用模板)
- C++实现队列进栈、出栈、打印数据
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)