文档详情

数据结构课程设计实验报告..doc

发布:2017-03-26约5.84千字共12页下载文档
文本预览下载声明
《数据结构》课程设计报告 题目: 实现队列的基本操作 班级: 09软件冶金(2班) 姓名: 杨 健 学号: 0 9 2 4 5 2 1 1 完成日期: 2011年1月6号 目 录 一、需求分析…………………………………….第3页 二、概要设计……………….……………………第4页 三、详细设计……………………..……………...第5页 四、调试分析…………………….……………....第7页 五、用户使用说明……………………………….第7页 六、测试结果…………………………………….第8页 七、附录………………………………………….第9页 一、需求分析 任选一种存储方式表示队列,用C++语言编程实现队列的以下基本操作: 1) InitQueue :构造一个空队列 2) DestroyQueue :销毁队列 3) ClearQueue :将队列清空 4) QueueEmpty :判定队列是否为空队列 5) QueueLength :返回Q的元素个数 6) GetHead :获取Q的队头元素 7) EnQueue :向队列Q中插入新元素 8) DeQueue :删除队列Q中的元素 9) QueueTraverse :依次读取队列Q中的每个元素 输入的形式:字符,以‘0’结束。 输入值的范围:字母皆可。 输出的形式:队列。 程序所能达到的功能:创建队列,销毁队列,清空队列,判断队列是否为空,返回队列长度,获取队头元素,插入新的队尾元素,删除队头元素并返回其值,遍历队列,退出程序。 测试数据: 目录: A B C D E F G H I K 请输入您选择的操作: 输入:A 请输入您要创建的队列 按0结束 输入:shujujiegou0 队列创建成功 输入:H 遍历结果为:shujujiegou 输入:D 该队列不为空 输入: E 该队列长度为:11 输入:F 队头元素为:s 输入:H 队头元素已删除,其值为:s 输入:I 遍历结果为:hujujiegou 输入:G 请输入您要添加的队尾元素 按#结束 s# 新的队尾元素插入成功! 输入:I 遍历结果为:hujujiegous 输入:C 队列已清空 输入:D 该队列为空队列 输入:I 队列为空 输入:B 队列销毁成功 输入:K Press any key to continue 二、概要设计 抽象数据类型的定义: typedef char QElemType; typedef struct QNode QElemType data; struct QNode *next; QNode,*QueuePtr; typedef struct QueuePtr front; QueuePtr rear; LinkQueue; 主程序的流程: 首先定义一些变量;然后输出目录,提示用户选择操作;接下来就是一个switch语句,根据用户的选择进行操作;最后case 1,case2,case 3,case 4,case 5,case 6,case 7,case 8,case 8,case 0分别实现“创建队列,销毁队列,清空队列,判断队列是否为空,返回队列长度,获取队头元素,插入新的队尾元素,删除队头元素并返回其值,遍历队列,退出程序”功能。 各程序模块之间的层次 调用 关系: 主函数调用实现各个功能的子函数以实现对应的功能。 三、详细设计 创建空队列 status InitQueue LinkQueue Q Q.front Q.rear QueuePtr malloc sizeof QNode ; if !Q.front return OVERFLOW; Q.front- next NULL; return OK; 销毁队列 status DestroyQueue LinkQueue Q while Q.front Q.rear Q.front- next; free Q.front ; Q.front Q.rear; return OK; 清空队列 void ClearQueue LinkQueue Q Q.front Q.rear; Q.front- next NULL; 判断队列是否为空 status QueueEmpty LinkQueue Q if Q.front Q.rear return TRUE; else return FALSE; 返回队列长度 int QueueLength LinkQueue Q int i 0; while ! Q.front Q.rear Q.front Q.front- next; ++i; return i; 获取队头元素 st
显示全部
相似文档