#include<iostream>
#include<malloc.h>
#define maxsize 50
using namespace std;
//结构体定义
typedef struct
{
int data[maxsize];
int front,rear;
}queue;
//初始化队列
void create(queue *&q)
{
q=(queue *)malloc(sizeof(queue));
q->front=q->rear=-1;
}
//插入队列
bool in(queue *&q,int e)
{
if(q->rear==maxsize-1) //队列为满的判断
return false;
q->rear++;
q->data[q->rear]=e;
return true;
}
//出队列
bool out(queue *&q,int &e)
{
if(q->front==q->rear) //队列为空的判断
return false;
q->front++;
e=q->data[q->front];
return true;
}
//取队列首元素(因为为顺序列)
int get(queue *q)
{
return q->data[q->front+1]; //在实现杨辉三角时需要用到
}
//杨辉三角
void print(queue *q,int d)
{
int e,i,j,x,t;
in(q,1); //第一行数为 1
for(i=2;i<=d;i++)
{
in(q,1); //每行第一个数为1
for(j=1;j<=i-2;j++) //两个1中间的数由上一行两两相邻相加
{
out(q,e);
c++顺序队列实现杨辉三角
最新推荐文章于 2023-02-18 11:21:41 发布