参考代码1:(用两个队列写的)
package queue;
public class queue {
public int msize;
public int front;
public int rear;
public int [] queue;
public queue(int size)
{
msize=size;
queue=new int[msize];
front=0;
rear=0;
}
public queue()
{
}
public boolean isEmpty()
{
if(front==rear){
return true;
}
else
{
return false;
}
}
public boolean isFull()
{
if((rear+1)%msize==front)
{
return true;
}
else
{
return false;
}
}
public void enQueue(int elem)
{
if((rear+1)%msize!=front)
{
queue[rear]=elem;
rear=(rear+1)%msize;
}
else
{
System.out.println("队列已满");
}
}
public void deQueue()
{
if(front!=rear)
{
// int elem=queue[front];
queue[front]=0;
front=(front+1)%msize;
}
else
{
System.out.println("队列是空的");
// return 0;
}
}
public void PrintQueue()
{
int i=front+1;
while(i!=rear)
{
System.out.print(queue[i]+" ");
i=(i+1)%msize;
}
System.out.println();
}
}
package queue;
public class yanghui {
public static void main(String [] args)
{
int n=6;
queue q1=new queue(3);
queue q2=new queue(4);
q1.enQueue(0);
q1.enQueue(1);
q1.enQueue(0);
for(int i=0;i<n;i++)
{
q2.enQueue(0);
while(q1.front!=q1.rear)
{
q2.enQueue(q1.queue[q1.front]+q1.queue[q1.front+1]);
q1.deQueue();
}
for(int j=0;j<n-i;j++)System.out.print(" ");
q2.PrintQueue();
q1=new queue(i+4);
q1=q2;
q2=new queue(i+5);
}
}
}
输出结果:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1