实验报告_实验二_ - 实验报告 - 书业网.docVIP

实验报告_实验二_ - 实验报告 - 书业网.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告_实验二_ - 实验报告 - 书业网

实验报告_实验二_ - 实验报告 - 书业网 数据结构与算法实现实验报告 一、 实验一 1.实验题目 顺序栈的定义及其操作算法的实现 2.需求分析 本演示程序用C++编写,编程实现顺序栈表的类型定义及顺序表的初始化操作、入栈操作、出栈操作、取栈顶元素操作、输出操作等,并对其进行验证。 输出的形式:输出栈中的每一个元素。 程序所能达到的功能:实现顺序栈表的类型定义及顺序表的初始化操作、入栈操作、出栈操作、取栈顶元素操作、输出操作。 测试数据: 往顺序栈中插入7,14,21,28,35,42 3.概要设计 1)为了实现上述程序功能,需要定义栈的抽象数据类型: ADT Stack { 数据对象:D={ai|aiElemSet,i=1,2,…,n,n≥0} 数据关系:R={lt;ai-1,aigt;|ai,ai-1D,i=2,…,n} 基本操作: InitStack(SqStack amp;S) 操作结果:构造一个空栈S. GetTop(SqStack S, ElemType amp;e) 初始条件:顺序栈S已存在 操作结果:得到顺序栈的头元素 Push(SqStack amp;S, ElemType e) 初始条件:顺序栈S已存在 操作结果:往顺序栈S中插入元素e为新的栈顶元素 Pop(SqStack amp;S,ElemType amp;e) 初始条件:顺序栈S已存在 操作结果:从顺序栈S删除栈顶元素. StackOutput(SqStack S) 初始条件:顺序栈S已存在 操作结果:读取顺序栈中的各个元素 main() 操作结果:调用各个函数 4.详细设计 1) 结点类型和指针类型 typedef struct {ElemType *Elem; int Top; int StackSize; }SqStack; 2) 顺序栈的基本操作 void InitStack(SqStack amp;S)//构造一个空栈S { S.Elem=(ElemType *)malloc(Init_Size*sizeof(ElemType)); if(!S.Elem) coutlt;lt;quot;OVERFLOWquot;; //存储分配失败 S.Top=0; } //InitStack void GetTop(SqStack S, ElemType amp;e)//若栈不空,则用e返回S的栈顶元素,否则返回ERROR {if (S.Top==0) coutlt;lt;quot;ERRORquot;; e=S.Elem[S.Top-1]; } //GetTop void Push(SqStack amp;S, ElemType e)//插入元素e为新的栈顶元素 { if(S.Top==S.StackSize) //栈满,追加存储空间 { S.Elem=(ElemType*)malloc((S.StackSize+INCR)*sizeof(ElemType)); if(!S.Elem) coutlt;lt;quot;OVERFLOWquot;; //存储空间分配失败 S.StackSize+=INCR; } S.Elem[S.Top++]=e; } //Push void Pop(SqStack amp;S,ElemType amp;e) //若栈不空,则删除S的栈顶元素,用e返回其值,否则返回ERROR {if (!S.Top) {coutlt;lt;quot;栈为空quot;lt;lt;endl;coutlt;lt;quot;ERRORquot;;} e=S.Elem[--S.Top]; }//Pop void StackOutput(SqStack S) //输出栈中的元素 { int i; for(i=0;ilt;S.Top;i++) coutlt;lt;S.Elem[i]lt;lt;quot; quot;; coutlt;lt;endl; } //StackOutput 3) 其他模块 int main() //主函数 { SqStack S

文档评论(0)

raojun00004 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档