队列写杨辉三角(拿两个队列写的。。。。

来源:互联网 发布:dota2 a卡优化 编辑:程序博客网 时间:2024/05/30 23:45


参考代码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 

0 0
原创粉丝点击