《数据结构循环队列》由会员分享,可在线阅读,更多相关《数据结构循环队列(5页珍藏版)》请在金锄头文库上搜索。
1、一、实验目的:1、掌握队列的特点及其描述方法;2、用顺序循环结构实现一个队列;3、掌握队列的各种基本操作。二、实验内容:1、设计一个循环队列;2、编写队列的入队、出队、读队头元素、显示队列中全部元素的程序;3、设计一个选择式菜单,以菜单方式选择队列的各种基本操作。#include stdafx.h#include iostream.h#include stdio.h const int MAXLEN=10;typedef struct int dataMAXLEN;int front,rear;SeQueue;SeQueue InitSeQueue()SeQueue q;q.front=-1;
2、q.rear=-1;return(q);int Getfront_seq(SeQueue*q,int*x)if(q-front=q-rear)return(0);else *x=q-data(q-front)+1;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -return(1);int enterSeQueue(SeQueue*q,int x)if(q-rear=MAXLEN-1)return(0);else q-rear+;q-dataq-rear=x;return(1);int DelSeQueue(SeQueue*q,int*x)if(q-front=q-rea
3、r)return(0);else q-front+;*x=q-dataq-front;return(1);int Empty_seq(SeQueue*q)return(q-rear=q-front);void print(SeQueue q)int n;if(q.front!=q.rear)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -printf(队列的元素输出:);for(n=q.front+1;n=q.rear;n+)printf(%3d,q.datan);else printf(队列为空!);printf(n);int main(int argc,char*a
4、rgv)int x;SeQueue queue;int n,y,z,i,j;queue=InitSeQueue();cout 蔡勇超广东海洋大学寸金学院11 信息管理与信息系统2 班endl;cout 联系方式:13763*77532*.endl;cout 程序设计一般原则自顶向下,逐步细化,先设计外部接口,再进行内部设计。endl;cout endl;loop:cout 循环队列系统endl;cout endl;cout*endl;cout*1-入 队*endl;cout*2-队列的元素输出*endl;cout*3-读列头元素*endl;cout*4-出 队*endl;cout*5-退 出*
5、endl;cout*0-关 于*endl;cout*endl;coutx;switch(x)case 1:printf(n 输入入队元素的数目n:);scanf(%d,&n);printf(输入%d 个待入队的元素:,n);for(i=1;i=n;i+)scanf(%d,&y);enterSeQueue(&queue,y);goto loop;break;case 2:print(queue);goto loop;break;case 3:print(queue);Getfront_seq(&queue,&z);printf(当前队头元素:%dn,z);goto loop;break;case
6、 4:print(queue);printf(输入出队元素的数目j(j 要小于 n):);scanf(%d,&j);printf(出队的%d 个元素为:,j);for(i=1;i=j;i+)DelSeQueue(&queue,&z);printf(%3d,z);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -printf(n);goto loop;break;case 5:return 0;break;case 0:cout欢迎使用线性表链式存储系统!endl;goto loop;break;default:cout!输入的选项不正确,请重新输入!endl;if(Empty_seq(&queue)!=0)printf(队列为空!);return 0;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -