输出杨辉三角 队列小应用

学习队列,一个小题目是输出杨辉三角

 

import java.util.ArrayDeque;
import java.util.Queue;



public class Mapdemo {
	/*
	 * name:print 杨辉三角
	 * author:suju
	 * date:2012-9-18
	 * 
	 * 输出杨辉三角,通过队列输出,在列队头补充0来方便计算,当输出到0,就表示换一行
	 * */
	
	
	/*example*/
	public static void main(String[] args) {
		printsan(6);
	}
	/*输出杨辉三角*/
	public static void printsan(int size)
	{
		Queue<Integer> queue=new ArrayDeque<Integer>();				/*初始化一个队列*/
		queue.add(0);
		queue.add(1);												/*初始化一个初始值*/
		int q1,q2;													/*初始化变量*/
		for (int i=0;i<size;i++)
		{
			queue.add(0);											/*添加一个0在列尾用于计算方便*/
			for (int j=size;j>i;j--){
				System.out.print(" ");
			}														/*输出几个空格,规范下格式---太多行效果不好*/
			do{
				q1=queue.poll();									/*将第一个数出列,并返回值,第一次正好出列 队列头0*/
				q2=queue.peek();									/*获取队列头数据,不将数据出列*/
				System.out.print(q2!=0?q2+" ":"");					/*打印,当数不是0时*/
				queue.add(q1+q2);									/*将计算的数入列*/
			}while (q2!=0);											/*当队列头为0时,循环结束*/
			System.out.println();									/*打印一个换行*/
		}
		queue.clear();												/*清除队列*/
	}
}

    原文作者:杨辉三角问题
    原文地址: https://blog.csdn.net/sujudz/article/details/7993798
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞