• 数据结构习题--栈与队列(1)


    用队列输出杨辉三角
    基本思路:使用两个队列,第一个队列用于存当前行的系数,将计算后的下一行系数放入第二个队列,然后再复制到第一个队列中,最后输出第一个队列(循环n-1次)。感谢指出错误,手动@杜文泽

    #include<stdio.h>
    #include<stdlib.h>
    #define maxsize 30
    typedef int datatype;
    typedef struct {
    	datatype data[maxsize];
    	int front,rear;
    }CricQueue; 
    
    void Initial(CricQueue *q){
    	int front = 0;
    	int rear = 0;
    }
    
    int QueueIsEmpty(CricQueue *q){
    	return q->front == q->rear;
    }
    
    int QueueIsFull(CricQueue *q){
    	return q->front == (q->rear+1)%maxsize;
    } 
    
    int EnQueue(CricQueue *q,datatype x){
    	if(QueueIsFull(q))
    		return 0;
    	q->data[q->rear++] = x;
    	return 1;
    }
    
    int DeQueue(CricQueue *q){
    	datatype k;
    	if(QueueIsEmpty(q))
    	    return 0;
    	k = q->data[q->front];
    	q->front = (q->front+1)%maxsize;
    	return k;
    }
    
    int Getfront(CricQueue *q){
    	datatype m;
    	if(QueueIsEmpty(q))
    	    return 0;
    	m = q->data[q->front];
    	return m; 
    }
    
    void PascalAngle(int n){
    	int i;
    	datatype j,k;
    	CricQueue *q1 = (CricQueue*)malloc(sizeof(CricQueue));//只用开辟一个空间就可以
    	CricQueue *q2 = (CricQueue*)malloc(sizeof(CricQueue));
    	Initial(q1),Initial(q2);
    	EnQueue(q1,1),EnQueue(q1,1);
    	printf("1	1
    ");
    	for(i = 1;i<n;i++){ 
    		EnQueue(q2,1);
    		//计算第i+1行的元素,进队列q2 
    	   while(!QueueIsEmpty(q1)){    
    		   k = DeQueue(q1);
    		    if(!QueueIsEmpty(q1)){
    			  j = Getfront(q1);
    			  EnQueue(q2,k+j);
    	        }else
    	        EnQueue(q2,1);	   
    	   }
    	    //将第i+1行复制到q1中,并输出该行 
    	    while(!QueueIsEmpty(q2)){ 
    		    k = DeQueue(q2);
    		    EnQueue(q1,k);
    			printf("%d",k);
    			printf("	");
    	   }
    	        printf("
    ");
       }
    }
    
    main(){
    	int n;
    	printf("请输入行数:");
    	scanf("%d",&n);
    	PascalAngle(n);
    } 
    

  • 相关阅读:
    IDE-Android Studio 导入Ecplise项目不改变结构
    IDE-Android Studio -FAQ-使用习惯(不断更新 欢迎留言)
    IDE-Ecplise-代码注释 模版 编码规范 配色
    android- 远程调试
    phpstorm所有快捷键表格pdf
    phpstorm修改字体和大小
    phpstorm重构代码形式让阅读更简单
    七牛云到底好不好使用经历分享
    一篇文章搞懂php中类型转换
    彻底解决php判断a==0为真引发的问题-类型转换
  • 原文地址:https://www.cnblogs.com/susususu/p/10817113.html
Copyright © 2020-2023  润新知