数据结构-利用循环队列打印杨辉三角.doc

上传人:xin****828 文档编号:6629609 上传时间:2020-03-01 格式:DOC 页数:2 大小:14.18KB
返回 下载 相关 举报
数据结构-利用循环队列打印杨辉三角.doc_第1页
第1页 / 共2页
数据结构-利用循环队列打印杨辉三角.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述
/-循环队列队列的顺序存储结构-#include#include#include /exit的头文件#define OK 1#define ERROR 0#define MAXQSIZE 100/最大队列长度#define Status int#define N 10#define QElemType inttypedef structQElemType *base;/初始化的动态分配存储空间int front; /头指针,若队列不空,指向队列头元素int rear; /尾指针,若队列不空,指向队列队尾元素的下一位置SqQueue;/-循环队列的基本操作的算法描述-Status InitQueue(SqQueue &Q)/构造一个空队列Q.base=(QElemType *)malloc(MAXQSIZE * sizeof(QElemType);if(!Q.base)exit(-1);/存储分配失败Q.front=Q.rear=0;return OK;int QueueLength(SqQueue Q)/返回Q的元素个数,即队列的长度return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;Status EnQueue(SqQueue &Q,QElemType e)/插入元素e为Q的新的队尾元素if(Q.rear+1)%MAXQSIZE=Q.front) return ERROR;/队列满Q.baseQ.rear=e;Q.rear=(Q.rear+1)%MAXQSIZE;return OK;Status DeQueue(SqQueue &Q,QElemType &e)/若队列不空,则删除Q的队头元素,用e返回其值,并返回OK;/否则返回ERRORif(Q.front=Q.rear) return ERROR;e=Q.baseQ.front;Q.front=(Q.front+1)%MAXQSIZE;return OK;Status GetHead(SqQueue &Q,QElemType &e)/若队列不空,则用e返回Q的队头元素,并返回OK;/否则返回ERRORif(Q.front=Q.rear) return ERROR;e=Q.baseQ.front;return OK;/-打印杨辉三角(前N行)-void YangHuiTriangle()int i,n,temp,x;SqQueue Q;InitQueue(Q);EnQueue(Q,1); /第一行元素入队for(n=2;n=N;n+) /产生第n行元素并入队,同时打印第n-1行的元素EnQueue(Q,1); /第n行的第一个元素入队for(i=1;i=n-2;i+) /利用队中第n-1行元素产生第n行的中间n-2个元素并入队DeQueue(Q,temp);printf(%d,temp); /打印第n-1行的元素GetHead(Q,x);temp=temp+x; /利用队中第n-1行元素产生第n行元素EnQueue(Q,temp);/forDeQueue(Q,x);printf(%d,x); /打印第n-1行的最后一个元素EnQueue(Q,1); /第n行的最后一个元素入队printf(n);/for/YangHuiTriangle void main() YangHuiTriangle();
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!