栈和队列,数据结构实验报告

栈和队列,数据结构实验报告

ID:30335673

大小:19.51 KB

页数:11页

时间:2018-12-29

栈和队列,数据结构实验报告_第1页
栈和队列,数据结构实验报告_第2页
栈和队列,数据结构实验报告_第3页
栈和队列,数据结构实验报告_第4页
栈和队列,数据结构实验报告_第5页
资源描述:

《栈和队列,数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划栈和队列,数据结构实验报告  《数据结构》课程实验报告  注:空间不够,可以增加页码。  第三章栈和队列的应用  【实验目的】  1.熟练掌握栈和队列的结构,以及这两种数据结构的特点;  2.能够在两种存储结构上实现栈的基本运算,特别注意栈满和栈空的判断条件及描述方法;  3.熟练掌握链队列和循环队列的基本运算,并特别注意队列满和队列空的判断条件和描述方法;  第一节知识准备  一、栈:  1.基本概念  栈

2、是一种限定仅在表的一端进行插入与删除操作的线性表。允许进行插入与删除操作的这一端称为栈顶,而另一端称为栈底,不含元素的空表称为空栈,插入与删除分别称进栈与出栈。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  由于插入与删除只能在同一端进行,所以较先进入栈的元素,在进行出栈操作时,要比较后才能出栈。特别是,最先进栈者,最后才能出栈

3、,而最晚进栈者,必最先出栈。因此,栈也称作后进先出  的线性表,简称LIFO表。  栈示意图见图3-1  2.栈的抽象数据类型定义:  ADTStack{  数据对象:D={

4、∈ElemSet,i=1,2,...,n,n>=0}  数据关系:R1={

5、,∈D,i=2,...,n}  基本操作:  InitStack(&S)构造一个空栈S  StackEmpty(S)判断栈S是否为空  StackLength(S)返回栈S的元素个数,即栈的长度  GetTop(S,&e)取栈S的栈顶元素  Push(&S,e)将元素e入

6、栈  Pop(&S,&e)删除S的栈顶元素并用e返回其值  }ADTStack  3.栈的表示:  栈有两种存储表示方法:顺序存储结构和链式存储结构。  (1)顺序存储结构:  #defineSTACK_INIT_SIZE100;//存储空间初始分配量  #defineSTACKINCREMENT10;//存储空间分配增量  typedefstruct{  SElemType*base;//栈底指针目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全

7、感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  SElemType*top;//栈顶指针  intStackSize;//栈的当前容量  }SqStack;  (2)链式存储结构:  TypedefstructLnode{  ElemTypedata;  structLnode*next;  }Lnode,*LinkList;  二、队列:  1.与栈相对应,队列是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端进行删除元素。允许插入的

8、一端称队尾,允许删除的一端称队头。插入与删除分别称为入队与出队。队列示意图见图3-2:──────────────  出队←a1a2??an-1←an进队  ──────────────  队头队尾  图3-2队列  2.队列的抽象数据类型定义:  ADTQueue{  数据对象:D={

9、∈ElemSet,i=1,2,...,n,n>=0}  数据关系:R1={

10、,∈D,i=2,...,n}目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了

11、适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  基本操作:  InitQueue(&Q)构造一个空队列Q  QueueEmpty(Q)判断队列是否为空  QueueLenght(Q)返回队列Q的元素个数,即队列的长度  GetHead(Q,&e)取队列Q的队头元素,并用e返回  EnQueue(&Q,e)将元素e入队列  DeQueue(&Q,&e)删除非空队列Q的队头元素,并用e返回其值  }ADTQueue  3.队列的表示:  队列有两种表示方法:链

12、队列、循环队列。  链队列的表示:  typedefstructQNode{  QElemTypedata;  structQNode*next;  }QNode,*QueuePtr;  typedefstruct{  QueuePtrfront;  QueuePtrrear;  }LinkQueue;  (2)循环队列的表示  

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

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

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