数据结构实验二.docx_第1页
数据结构实验二.docx_第2页
数据结构实验二.docx_第3页
数据结构实验二.docx_第4页
数据结构实验二.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二 堆栈的实现与应用一、 实验目的掌握堆栈的基本操作和设计数据测试功能的方法 二、 实验要求 1) 编写一个将顺序堆栈S中所有数据元素均删去的算法 void ClearStack(SeqStack *S),并说明参数S为何要设计为指针参数。2) 编写一个返回顺序堆栈S中结点个数的算法 int StackSize(SeqStack S),并说明参数S为何不用设计为指针类型。三、 实验仪器设备及软件HP D538、C语言四、 实验原理顺序堆栈的入栈和出栈操作只能对当前栈顶数据元素。五、 实验步骤及程序(1)初始化StackInitiate(S)(2)非空否StackNotEmpty(S)(3)入栈StackPush(SeqStack*S,DataType x)(4)出栈StackPop(SeqStack*S,DataType *d)(5)取栈顶数据元素StackTTop(SeqStack*s,DataType*)上述实现顺序堆栈操作的所有函数中,都没有循环语句,所以顺序循环堆栈的所有操作的似箭复杂度均为1.六、 实验结果与分析试验程序如下#include #include #define MAX 20typedef struct int elementMAX; int index;Stack;void ClearStack(Stack *S)S-index = 0;int StackSize(Stack S)/因为未改动堆栈的数据,所以不用设置为指针 return S.index;int InitStack(Stack *s) s-index=0; return 1;int IsFull(Stack *s) if(s-index=MAX) return 1; else return 0; int IsEmty(Stack *s) if(s-index=0) return 1; else return 0; int Push(Stack *s,int elements) if(IsFull(s) return 0; else s-elements-index=elements; s-index+; return 1; int Pop(Stack *s,int *elements) if(IsEmty(s) return 0; else s-index-; *elements=s-elements-index; return 1; int main() Stack *p; int element=0; p=(Stack *)malloc(sizeof(Stack); InitStack(p); for(int i=0;i21;i+) if(!Push(p,i) printf(Stack is Fulln); break; else printf(%d Push to stackn,i+1); printf(栈中元素个数:%dn, StackSize(*p); ClearStack(p); printf(清堆栈之后栈中元素个数:%dn,StackSize(*p); 实验结果如图总结:1:该程序实现了数据元素的顺序入栈并把所有数据元素均删去的算法。2在编程序时,把最大数据元素定为20,可以看出,当数据元素个数小于20时,可以正常顺序入栈出栈,但当数据元素个数超过20时,会显示“Stack is Ful

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论