2022年数据结构实验三题目和源程序 3.pdf
《2022年数据结构实验三题目和源程序 3.pdf》由会员分享,可在线阅读,更多相关《2022年数据结构实验三题目和源程序 3.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验三 :循环队列基本操作一 、实验目的1熟悉并能实现循环队列的定义和基本操作。2了解用队列解决实际应用问题。二、实验要求1进行队列的基本操作时要注意队列“先进先出”的特性。2复习关于队列操作的基础知识。3编写完整程序完成下面的实验内容并上机运行。4整理并上交实验报告。三、实验内容1任意输入队列长度和队列中的元素值,构造一个顺序循环队列,对其进行清空、插入新元素、返回队头元素以及删除队头元素操作。2约瑟夫环的实现:设有n 个人围坐在圆桌周围,现从某个位置i 上的人开始报数,数到m 的人就站出来。下一个人,即原来的第m+1 个位置上的人,又从 1 开始报数,再是数到m 的人站出来。依次重复下去,
2、直到全部的人都站出来, 按出列的先后又可得到一个新的序列。由于该问题是由古罗马著名的史学家Josephus提出的问题演变而来,所以通常称为Josephus 问题。例如:当 n=8,m=4,i=1 时,得到的新序列为:4,8,5,2,1,3,7,6 编写程序选择循环队列作为存储结构模拟整个过程,并依次输出出列的各人的编号。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - /*- * 03_循环队列 .cpp - 循环队列基本操作*
3、对循环队列的每个基本操作都用单独的函数来实现* 水上飘2009 年写-*/ / ds03.cpp : 定义控制台应用程序的入口点。/ #include stdafx.h #include #include #include #include #define MAXQSIZE 100 /最大队列长度using namespace std; typedef struct int *base; /初始化的动态分配存储空间int front; / 头指针,若队列不空,指向队列头元素int rear; /尾指针,若队列不空,指向队列尾元素的下一个位置SqQueue; /构造一个空队列void InitQ
4、ueue(SqQueue &Q) Q.base = (int *)malloc(MAXQSIZE * sizeof(int); if(!Q.base) cout 存储分配失败。 endl; Q.front = Q.rear = 0; /插入元素e 为新的队尾元素void InsertEnd(SqQueue &Q, int e) if(Q.rear + 1) % MAXQSIZE = Q.front) cout 队列已满。 endl; Q.baseQ.rear = e; Q.rear = (Q.rear + 1) % MAXQSIZE; /给队列随机赋m 个值名师资料总结 - - -精品资料欢迎
5、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - void Evaluate(SqQueue &Q, int m) int k; for(int i = 0; i m; i+) k = rand() % 100; InsertEnd(Q,k); /返回 Q 的元素个数,即队列的长度int QueueLength(SqQueue Q) return (Q.rear - Q.front + MAXQSIZE) % MAXQSIZE; /清空队列void ClearQue
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构实验三题目和源程序 2022 数据结构 实验 题目 源程序
限制150内