利用队列的基本功能输出杨辉三角形:
#include "SequenceQueue.h"
int main()
{
int N, num, i;
Queue *que1 = NULL, *que2 = NULL, *tmp = NULL;
if(QueueInit(&que1) != SUCCESS || QueueInit(&que2) != SUCCESS)
{
printf("Init Error!\n");
return 0;
}
printf("Please input:\n");
scanf("%d", &N);
for(i = 0; i < N; i++)
{
if(0 == i)
{
Push(que1, 0);
Push(que1, 1);
Push(que1, 0);
num = 1;
printf("%4d", num);
}
else
{
Push(que2, 0);
while(1 != QueueLength(que1))
{
num = Pop(que1);
num = num + Get(que1);
Push(que2, num);
printf("%4d ", num);
}
Push(que2, 0);
tmp = que1;
que1 = que2;
que2 = tmp;
QueueClear(que2);
}
printf("\n");
}
return 0;
}
<