实验三 栈和队列(队列)

实验三 栈和队列(队列)

ID:14129327

大小:63.00 KB

页数:4页

时间:2018-07-26

实验三  栈和队列(队列)_第1页
实验三  栈和队列(队列)_第2页
实验三  栈和队列(队列)_第3页
实验三  栈和队列(队列)_第4页
资源描述:

《实验三 栈和队列(队列)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三栈和队列的算法实现(队列)一、实验目的1.掌握队列这种数据结构特性及其主要存储结构。2.掌握队列的基本操作算法。二.实验指导(1)程序的三部分构架:1、常量定义(#define),类型定义(typedef)及函数原型定义(#include);2、算法函数,即init_Q、EnQueue、DeQueue和out_Q等3、主函数。(2)队列的顺序存储结构typedefstruct{ElemTypea[MAXSIZE];/*一维数组子域*/intfront,rear;/*头、尾指针子域*/}SqQ

2、ueue;/*队列的顺序结构体类型*/(3)队列的特点:先进先出三、实例1.循环队列(即队列的顺序存储结构)实现。#include #include #defineMAXSIZE20/*数组最大界限*/typedefintElemType;/*数据元素类型*/typedefstruct{ElemTypea[MAXSIZE];/*一维数组子域*/intfront,rear;/*头、尾指针子域*/}SqQueue;/*循环队列的结构体类型*/SqQueueQ1;/

3、*函数声明*/voidinit_Q(SqQueue*Q);voidout_Q(SqQueueQ);voidEnQueue(SqQueue*Q,ElemTypee);//ElemTypeDeQueue(SqQueue*Q);/*主函数*/main(){intk;ElemTypee,x;charch;init_Q(&Q1);/*初始化一个空循环队列*/do{printf("");printf("1.数据元素e进队列");printf("2.出队一个元素,返回其值");pri

4、ntf("3.结束程序运行");printf("======================================");printf("请输入您的选择(1,2,3)");scanf("%d",&k);switch(k){case1:{printf("进队e=?");scanf("%d",&e);EnQueue(SqQueue&Q1,e);out_Q(Q1);}break;case2:{x=DeQueue(&Q1);printf("出队元素:%d",x);out_Q

5、(Q1);}break;case3:exit(0);}/*switch*/printf("----------------");}while(k>=1&&k<3);printf("再见!");printf(“打回车键,返回。“);ch=getch();}/*main*/Q1.front345012Q1.rearr空循环队列/*初始化空队列*/voidinit_Q(SqQueue*Q){Q->front=0;Q->rear=0;}/*init_Q*//*输出队列的内容*/voidout_

6、Q(SqQueueQ){charch;inti;/*不能修改队列头、尾指针*/if(Q->front==Q->rear)printf(“QueueisNULL.“);else{i=(Q->front+1)%MAXSIZE;while(i!=Q->rear){printf(“data=%d”,Q->a[i]);i=(i+1)%MAXSIZE;}printf(“data=%d”,Q->a[i]);}printf(“打回车键,继续。“);ch=getch();}/*out_Q*//*进队

7、函数*/voidEnQueue(SqQueue*Q,ElemTypee){if((Q->rear+1)%MAXSIZE==Q->front)printf(“QueueisOverflow!”);else{Q->rear=(Q->rear+1)%MAXSIZE;Q->a[Q->rear]=e;}}/*EnQueue*/Q1.front345012Q1.rear1112进队两个数据后1.队列的链表储结构及实现。#include#include#include<

8、math.h>typedefintElemType;typedefstructQNode{ElemTypedata;/*数据子域*/structQNode*next;/*指针子域*/}QNode;/*结点结构类型*/typedefstruct{Qnode*front,*rear;/*头、尾指针子域*/}L_Queue;/*“头尾”结点结构类型*/L_QueueQ1;/*函数声明*/voidinit_Q(L_Queue*Q);voidout_Q(L_QueueQ);voidEnQue

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。