陕西科技大学实验报告第页班级信工082学号200806030202姓名李霄实验组别实验日期2010-12-20室温报告日期2010-12-20成绩报告内容:(目的和要求,原理,步骤,数据,计算,小结等)实验名称:实验三队列的表示及实现实验目的:1、通过实验进一步理解队列的“先进先出”特性。2、掌握队列的逻辑结构及顺序存储结构和链式存储结构。3、熟练运用C语言实现队列的基本操作。4、灵活运用队列解决实际问题。实验内容:1、实现链队列,并编写主函数进行测试。测试方法为:依次10、20、30、40,然后,出对3个元素。再次入队50、60,然后出队3个元素。查看屏幕上显示的结果是否与你分析的结果一致。2、在1的基础上,再出队1个元素。查看屏幕上显示的结果是否与你分析的结果一致。3、编写主函数比较取队头元素操作和出队操作。实验学时:2学时实验程序#includestdio.h#includeconio.htypedefintDataType;typedefstruct{DataTypedata;structQNode*next;}LQNode,*PQNode;typedefstruct{PQNodefront,rear;}LinkQueue;intInitQueue(LinkQueue*Q){Q-front=Q-rear=(PQNode)malloc(sizeof(LQNode));附页第页if(!Q-front){printf(errors\n);return0;}Q-front-next=NULL;return1;}intQueueEmpty(LinkQueueQ){if(Q.front==Q.rear)return1;elsereturn0;}intEnQueue(LinkQueue*Q,DataTypee){PQNodep;p=(PQNode)malloc(sizeof(LQNode));if(!p){printf(\n\nerrors\n\n);return0;}p-data=e;p-next=NULL;Q-rear-next=p;Q-rear=p;return1;}intDeQueue(LinkQueue*Q,DataType*e){PQNodep;if(Q-front==Q-rear){printf(\nerrors\n);附页第页return0;}p=Q-front-next;*e=p-data;Q-front-next=p-next;free(p);if(Q-rear==p)Q-rear=Q-front;return1;}intGetHead(LinkQueueQ,DataType*e){PQNodep;if(Q.front==Q.rear){printf(\nerror\n);return0;}p=Q.front-next;*e=p-data;printf(%d,*e);}main(){inti,*e,m;LinkQueueQ;inta[6]={10,20,30,40,50,60};printf(shejiyishunxuwei:\n);InitQueue(&Q);for(i=0;i4;i++)EnQueue(&Q,a[i]);for(i=0;i3;i++){DeQueue(&Q,&e);printf(%d\t,e);}附页第页for(i=4;i6;i++)EnQueue(&Q,a[i]);while(!QueueEmpty(Q)){DeQueue(&Q,&e);printf(%d\t,e);}printf(\nhuicheyunxingsheji2\n);getchar();DeQueue(&Q,&e);printf(\nhuicheyunxingquduitouyuansu:\n);getchar();for(i=0;i6;i++)EnQueue(&Q,a[i]);GetHead(Q,&e);printf(\nhuicheyunxingchuduicaozuo:\n);getchar();for(i=0;i6;i++)EnQueue(&Q,a[i]);DeQueue(&Q,&e);printf(%d,e);}实验步骤1、WIN-TC开发环境安装与配置1)首先在网上下载WIN-TC的版本;2)下载完成后进行安装,安装路径默认就可以了,一路next就ok了;3)打开WIN-TC会出现如下界面;附页第页2、在WIN-TC中输程序,源代码见算法流程。3、在运行中点编译连接。4、运行后显示编译成功即没有错误,如图:5、点确定后再在运行中点编译连接并运行,并出现如下窗口:附页第页6、点击确定后出现如下窗口:7、按回车后显示:附页第页8、按回车显示如图:9、按回车显示如图:附页第页实验结果:通过实验步骤中的截图可以看出实验结果正确,故本次编译的程序能够实现实验内容中的要求。心得体会:通过本次实验使我对队列的表示及实现有所了解,编译的过程是我更进一步的掌握了队列的定义及其结构,并通过编译的结果区分了栈和队列的区别,深刻的理解了“先进后出”以及“先进先出”的概念。