欢迎来到天天文库
浏览记录
ID:61509672
大小:29.00 KB
页数:5页
时间:2021-02-08
《实验二 栈和队列(提高).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数据结构实验二栈和队列一、实验目的:1.熟悉队列的实现;2.通过本次学习帮助学生加深C语言的使用,掌握算法分析方法并对已经设计出的算法进行分析,给出相应的结果。二、实验要求:编写实验程序,上机运行本程序,保存程序的运行结果,结合程序进行分析并写出实验报告。三、实验内容及分析:1.用队列编的杨辉三角程序如下:头文件stdafx.h的内容如下:#include#include#defineMax30typedefstruct{int*base;intfront;intrear;}SqQueue;intInitQ
2、ueue(SqQueue&Q);//队列的初始化intEnQueue(SqQueue&Q,inte);//数据进队(从队尾传值)intDeQueue(SqQueue&Q,int&e);//数据出队(返回队头)voidYHPrint(SqQueue&Q,intn);//打印杨辉三角voidjiemian();//界面函数,方便调用//以下是整个源程序:#include"stdafx.h"intInitQueue(SqQueue&Q){Q.base=(int*)malloc(Max*sizeof(int));if(!Q.base)return0;Q
3、.front=Q.rear=0;return1;}intEnQueue(SqQueue&Q,inte){if((Q.rear+1)%Max==Q.front)return0;Q.base[Q.rear]=e;Q.rear=(Q.rear+1)%Max;return1;}intDeQueue(SqQueue&Q,int&e){if(Q.front==Q.rear)return0;e=Q.base[Q.front];Q.front=(Q.front+1)%Max;returne;}voidYHPrint(SqQueue&Q,intn){//Init
4、Queue(Q);inti,j,k,e,s1;for(i=1;i<=n;i++){for(k=0;k5、nf("%d",&t);do{switch(t){case1:{InitQueue(Q);printf("请输入杨辉三角的层数:");scanf("%d",&n);YHPrint(Q,n);};break;case2:printf("欢迎再次使用!");break;default:printf("输入错误:");break;}if(t==1){printf("你还想继续使用吗?继续请输入:1,退出请输入:2!");scanf("%d",&t);}}while(t==1);}主函数main():#include"stdafx.h"intm6、ain(){jiemian();return0;}5.队列实现的杨辉三角:#include#includetypedefstructQnode{intdata;structQnode*next;}Qnodetype;typedefstruct{Qnodetype*front;Qnodetype*rear;}Lqueue;voidcreate(Lqueue*q){Qnodetype*h;h=(Qnodetype*)malloc(sizeof(Qnodetype));h->next=NULL;q->front=7、h;q->rear=h;}voidLappend(Lqueue*q,intx){Qnodetype*s;s=(Qnodetype*)malloc(sizeof(Qnodetype));s->data=x;s->next=NULL;q->rear->next=s;//先挂上,后指针移动。q->rear=s;}intLdelete(Lqueue*q){Qnodetype*p;intx;if(q->front==q->rear){printf("队列为空!");x=0;}else{p=q->front->next;q->front->next=p8、->next;if(p->next==NULL)q->rear=q->front;x=p->data;free(p);}returnx;}voiddi
5、nf("%d",&t);do{switch(t){case1:{InitQueue(Q);printf("请输入杨辉三角的层数:");scanf("%d",&n);YHPrint(Q,n);};break;case2:printf("欢迎再次使用!");break;default:printf("输入错误:");break;}if(t==1){printf("你还想继续使用吗?继续请输入:1,退出请输入:2!");scanf("%d",&t);}}while(t==1);}主函数main():#include"stdafx.h"intm
6、ain(){jiemian();return0;}5.队列实现的杨辉三角:#include#includetypedefstructQnode{intdata;structQnode*next;}Qnodetype;typedefstruct{Qnodetype*front;Qnodetype*rear;}Lqueue;voidcreate(Lqueue*q){Qnodetype*h;h=(Qnodetype*)malloc(sizeof(Qnodetype));h->next=NULL;q->front=
7、h;q->rear=h;}voidLappend(Lqueue*q,intx){Qnodetype*s;s=(Qnodetype*)malloc(sizeof(Qnodetype));s->data=x;s->next=NULL;q->rear->next=s;//先挂上,后指针移动。q->rear=s;}intLdelete(Lqueue*q){Qnodetype*p;intx;if(q->front==q->rear){printf("队列为空!");x=0;}else{p=q->front->next;q->front->next=p
8、->next;if(p->next==NULL)q->rear=q->front;x=p->data;free(p);}returnx;}voiddi
此文档下载收益归作者所有