![]() |
#2
hubinyes2014-03-25 10:26
|

#include<iostream>
using namespace std;
class queue
{
public:
queue();
~queue();
bool empty() const;
void append(int);
int serve();
private:
queue *front,*rear,*next;
int data;
};
queue::queue()
{
front=NULL;
rear=NULL;
}
bool queue::empty() const
{
if(front==NULL) return true;
return false;
}
void queue::append(int x)
{
queue*s=new queue;
s->data=x;
if(front==NULL)
{
front=s;
rear=s;
}
else
{
rear->next=s;
rear=s;
rear->next=NULL;
}
}
int queue::serve()
{
int a;
if(empty())return 0;
queue*u;
u=front;
a=front->data;
front=u->next;
delete u;
return a;
}
queue::~queue()
{
while(!empty())serve();
}
void outnumber(int n)
{
int s1,s2,i,j,m=0;
queue a;
cout<<1<<endl;
a.append(1);
for(i=2;i<=n;i++)
{
s1=0;
for(j=1;j<=i-1;j++)
{
s2=a.serve();//循环第二次时,这个语句不执行了,原因?
cout<<s1+s2<<" ";
a.append(s1+s2);
s1=s2;
}
cout<<1<<endl;
a.append(1);
}
}
int main()
{
outnumber(3);
}
无论outnumber里的数怎么改,输出结果一直是
1
1 1
然后跳出一个框,说程序已停止工作
求解答,谢谢