数据结构导论实践设计报告.doc

数据结构导论实践设计报告.doc

ID:58804324

大小:32.00 KB

页数:7页

时间:2020-09-27

数据结构导论实践设计报告.doc_第1页
数据结构导论实践设计报告.doc_第2页
数据结构导论实践设计报告.doc_第3页
数据结构导论实践设计报告.doc_第4页
数据结构导论实践设计报告.doc_第5页
资源描述:

《数据结构导论实践设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实践考核题第一题设计报告书学生姓名学生学号所在地区泰安市提交日期(年/月)2014/6实践题目利用队的结构解决实际问题需求分析(1)、置空setnull(queue)将队列queue置成空队列调用setnull(queue)函数把队列queue的顶端指针和低端指针指向同一块地址,这样就把队列置空。当队列中的数据元素不用或者必须要清楚的时候,就必须调用该函数把队列中的数据清空才能在插入新的数据供用户操作使用。(2)、入队enqueue(queue,x)将元素x插入队列queue的尾部调用函数enqueue(queue,x),通过移动首指针找到要入队的数据,直到把队列的空间占满。有数据要进入队

2、列时,调用该函数把数据元素x插入到队列中,先判断队列是否已满让后才能把数据元素插入到队尾。(3)、出队dequeue(queue)删除队列queue的队头元素,函数返回被删除元素的值通过移动首指针把队首的指针往下移动一个地址,这样就把一个元素数据出队了。当要出队时,队列是从头指针开始一系列操作。先判断该队列是否为空队列,如果不是的话,在进行出队操作把头指针往上移一个地址,这样就把数据出队了。(4)、判队空isempty(queue)若栈stack为空,函数返回0,否则返回1判断队列的为空的条件是(queue.rear==queue.front)如果为空返回数值1,否则返回0。当出队操作时,

3、需要判断队列是否为空,调用该函数。概要设计这三个函数置空、入队和出队,使用的都是顺序循环存储结构。队列是有限个同类型数据元素的线性序列,是一种先进先出(FirstInFirstOut)的新型表,新加入的数据元素插在队列的尾端,出队列的数据元素在队列首部被删除。顺序存储实现的队列称为顺序队列,它由一个一维数组(用于存储队列中元素)及两个分别指示队列首和队列尾元素的变量组成,这两个变量分别称为“队列首指针”和“队列尾指针”。(1)、队列是有限的数据元素的集合,要定义一个常量说明该队列的大小;(2)、定义顺序队列的类型包括一个数据域和两个指针域(首指针和尾指针),并声明一个该类型的变量以便于操作

4、;(3)、根据需求分析写出每个函数的功能:置空函数:根据函数的形参,即传递进来的队列指针,调用它的首指针和尾指针让两个指针相等,就把队列中的元素全部清空。入队函数:首先判断该队列是否已满,如果队列已满,就退出操作。否则,执行入队操作的语句,由于是循环队列所以在移动尾指针时,要把尾指针的位置取余运算(queue.rear=(queue.rear+1)%maxsize;),然后把数据元素赋给尾指针(queue,data[queue.rear]=x;)。出队函数:当有数据元素要出队时,首先判断该队列是否为空,如果为空时,元素出队列失败。否则,当队列不为空时,执行出队操作(queue.front=

5、(queue.front+1)%maxsize;)返回数值1,说明出队成功。判空函数:该函数是用来判断队列是否为空的,是被别的函数调用作为判断条件用,若果为空的话就返回数值0,标志不能继续执行下面的语句。判断为空的条件是:queue.rear==queue.front;如果为空返回值为1,否则返回值为0。详细设计对于队列的操作首先需要把队列置空,然后插入数据元素,在插入元素时需要判断是否队列已满,在数据元素出队时需要先对队列判断是否为空,如果为空时结束程序继续执行,否则继续执行出队操作。(1)定义结构体Typedefstructseqqueue//定义结构体类型seqqueue{Intda

6、ta[maxsize];//结构体中的三个变量第一个为整形数组Intfront,rear;//第二和第三个为整形类型的表示队首的变量和队尾的变量}queue;//对结构体变量定义了一个别名Queueqe;//定义结构体类型的变量(2)置空的函数代码:VoidSetnull(queueqe){//把队列传进函数qe.front=0;//把队列的首指针赋值为0qe.rear=0;//把队列的尾指针赋值为0,让它和首指针的地址相同}(3)判空函数代码:Intisempty(queueqe){//通过参数qe判断队列是否为空If(qe.rear==qe.front)//判断的条件是判断首指针和尾指

7、针的地址是否相同Return1;//如果相等返回1ElseReturn0;//如果不相等返回0}(4)入队函数代码:Intenqueue(queueqe,intx){//通过参数把x的数值传递给队列qeIf((qe.rear+1)%maxsize==qe.front)//判断队列qe是否已满{Error(“队列已满”);//若队列已满,则入队列失败Return0;//返回值为0}Else{//否则执行else的操作Qe.

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

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

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