C语言 队列实现杨辉三角的打印

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include

#define MAXSIZE 100

typedef int QueueElemType;
typedef struct
{
QueueElemType elem[MAXSIZE];
int front;
int rear;
}SeqQueue;

void InitQueue(SeqQueue *Q)
{
Q->front = Q->rear = 0;
}

int EnterQueue(SeqQueue *Q, QueueElemType x)
{
if ((Q->rear + 1) % MAXSIZE == Q->front)
return 0;
Q->elem[Q->rear] = x;
Q->rear = (Q->rear + 1) % MAXSIZE;
return 1;
}

int DeleteQueue(SeqQueue *Q, QueueElemType *x)
{
if (Q->front == Q->rear)
return 0;
*x = Q->elem[Q->front];
Q->front = (Q->front + 1) % MAXSIZE;
return 1;
}

int GetHead(SeqQueue *Q, QueueElemType *x)
{
if (Q->front == Q->rear)
{
return 0;
}
else
{
*x = Q->elem[Q->front];
return 1;
}
}

int IsEmpty(SeqQueue *Q)
{
if (Q->front == Q->rear)
{
printf_s("Empty!");
return 1;
}
}
int main()
{
SeqQueue Q;
InitQueue(&Q);
EnterQueue(&Q, 1);
int n, i, temp, N;
int x = 1;
for (n = 2;n <= 11;n++)
{
EnterQueue(&Q, 1);
for (i = 1;i <= n - 2;i++)
{
DeleteQueue(&Q, &temp);
printf_s("%5d", temp);
GetHead(&Q, &x);
temp = temp + x;
EnterQueue(&Q, temp);
}
DeleteQueue(&Q, &x);
printf_s("%5d", x);
printf_s("\n");
EnterQueue(&Q, 1);
}
while (!IsEmpty(&Q))
{
DeleteQueue(&Q, &x);
printf_s("%5d", x);
}
_getch();
return 0;
}

相关文档
最新文档