1、用顺序存储来定义循环队列结构。编程实现,初始化队列、判队列为空、出队列、入队列、求队列头部元素等运算,自己填写主函数。
2、利用队列打印杨辉三角形。
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN=24;
typedef struct Cqueue{
int elem[MAXN];
int head,tail;
Cqueue(){
head=0;
tail=0;
}
public:
bool empty(){
return head==tail?1:0;
}
bool full(){
return (head+1)%MAXN==tail?1:0;
}
bool push(int x){
if(full()) return 0;
elem[head]=x;head=(head+1)%MAXN;
return 1;
}
bool pop(){
if(empty()) return 0;
tail=(tail+1)%MAXN;
return 1;
}
int front(){
if(empty()) return -1;
int k=tail;
return elem[k];
}
}Cqueue;
int main()
{
const int N=21;
Cqueue que;
for(int i=0;i<=N;i++){
int a1=0,a2=0;
for(int j=1;j<=i;j++){
a1=a2;
a2=que.front();
que.pop();
printf("%7d",a1+a2);
que.push(a1+a2);
}
que.push(1);
printf("%7d\n",1);
}
}