此代码在生成杨辉三角后不停生成别的,应该怎么改?

//LinearList.h
#include<iostream>
using namespace std;
template<class T>
class LinearQueue
{
public:
	LinearQueue(int LQMaxSize);
	~LinearQueue();
	bool IsEmpty();
	bool IsFull();
	bool Insert(T x);
	bool Delete(T& x);
	bool GetElement(T &x);
 
private:
	int front,rear;
	T*element;
    int Maxsize;
};
 
template<class T>
LinearQueue<T>::LinearQueue(int LQMaxSize)
{ Maxsize=LQMaxSize;
  element=new T[Maxsize];
  front=0;
  rear=0;}
 
template<class T>
LinearQueue<T>::~LinearQueue()
{ delete []element;}
 
template<class T>
bool LinearQueue<T>::IsEmpty()
{ if(front==rear)
     return true;
else return false;}
 
template<class T>
bool LinearQueue<T>::IsFull()
{
  if((rear+1)%Maxsize==front)
	  return true;
  else
	  return false;}
 
template<class T>
bool LinearQueue<T>::Insert(T x)
{ if(IsFull())
  {cout<<"此栈已满,无法添加"<<endl;
return false;}
else
{ element[rear]=x;
  rear=(rear+1)%(Maxsize);
 return true;}
}
 
template<class T>
bool LinearQueue<T>::Delete(T& x)
{ if(IsEmpty())
{cout<<"此栈是空"<<endl;
return false;}
else
{ x=element[front];
  front=(front+1)%(Maxsize);
return true;}}
 
template<class T>
bool LinearQueue<T>::GetElement(T &x)
{ if(IsEmpty())
   return false;
else
{
	x=element[front];
	return true;}
}
 
 
//LinearList.cpp
#include "stdafx.h"
#include"LinearList.h"
#include<iostream>
using namespace std;
void YangHui(int n);
void PrintSpace(int n,int k)
{ for(int i=1;i<=n-k;i++)
   cout<<' ';
}
int main()
{   int n;
   cout<<"请输入杨辉三角的行数"<<endl;
   cin>>n;
   YangHui(n);
   system("pause");
	return 0;
}
 
void YangHui(int n)
{ 
	LinearQueue<int>Q(n+2);
	int x,y;
	PrintSpace(n,1);
	cout<<'1'<<endl;
	Q.Insert(0);
	Q.Insert(1);
	Q.Insert(1);
	for(int i=2;i<=n;i++)
	{  Q.Insert(0);
	PrintSpace(n,i);
	   do
	   {Q.Delete(x);
	   Q.GetElement(y);
	   if(y)
		   cout<<y<<' ';
	   else
		   cout<<endl;
	   Q.Insert(x+y);}
	   while(y);}
	cout<<endl;}

 

你的循环条件是  

while(y)

你可以打印 y 的值看看,它是怎么变化的。