zoukankan      html  css  js  c++  java
  • 【数据结构队列的应用】用队列打印杨辉三角

    数学中的杨辉三角大家都不陌生,那怎样用程序的方式求n行的杨辉三角呢?方法很多,队列就是其中的一种。下面给出基于队列实现的杨辉三角。

    # include<stdio.h>
    # define M 100
    typedef struct 
    {
    	int a[M];
    	int front,rear;
    }sq;
    void init(sq *q)
    {
    	q->rear=q->front=0;
    }
    int  enter(sq *q,int x)
    {
    	if((q->rear+1)%M==q->front)
    	{
    		return 0;
    	}
    	else
    	{
    		q->a[q->rear]=x;
    		q->rear=(q->rear+1)%M;
    		return 1;
    	
    	}
    }
    int delet(sq *q,int *x)
    {
    	if(q->front==q->rear)
    	{
    		return 0;
    	}
    	else
    	{
    		*x=q->a[q->front];
    		q->front=(q->front+1)%M;
    		return 1;
    	}
    }
    int get(sq *q,int *x)
    {
    	if(q->front==q->rear)
    	{
    		return 0;
    	}
    	else
    	{
    		*x=q->a[q->front];
    		return 1;
    	}
    }
    void main()
    {
    	sq q;
    	int n,m,i,x,y;
    	init(&q);
    	printf("请输入杨辉三角的行数
    ");
    	scanf("%d",&m);
    	enter(&q,1);
    	for(n=2;n<=m;n++)
    	{
    		enter(&q,1);
    		for(i=1;i<=n-2;i++)
    		{
    			delet(&q,&x);
    			printf("%d ",x);
    			get(&q,&y);
    			y=y+x;
    			enter(&q,y);
    		}
    		delet(&q,&x);
    		printf("%d",x);
    		printf("
    ");
    		enter(&q,1);
    	}
    	while(q.front!=q.rear)
    	{
    		delet(&q,&x);
    		printf("%d ",x);
    	}
    
    }
    程序运行结果如下:



  • 相关阅读:
    Oracle第五周测验
    软件测试第五周
    Oracle第四周作业
    c++第二章测试
    软件测试第四章
    软件测试 第三章
    Centos 安装.NET Core环境
    .net core 集成极光推送
    Swagger添加文件上传测试
    linux firewall
  • 原文地址:https://www.cnblogs.com/hainange/p/6334078.html
Copyright © 2011-2022 走看看