数据结构_实验三_栈和队列及其应用概念.doc

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验编号:3 四川师大《数据结构》实验报告 2016年10月29日 实验三 栈和队列及其应用_ 实验目的及要求 掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们; 本实验训练的要点是“栈”的观点及其典型用法; 掌握问题求解的状态表示及其递归算法,以及由递归程序到非递归程序的转化方法。 实验内容 编程实现栈在两种存储结构中的基本操作基本操作Main.cpp: #includeSStack.h int main() { SqStack S; SElemType e; int elect=1; InitStack(S); cout 已经创建一个存放字符型的栈 endl; while (elect) { Muse(); cin elect; cout endl; switch (elect) { case 1: cout input data:; cin e; Push(S, e); break; case 2: if(Pop(S, e)) {cout e is pop endl; } else{coutblankendl;} break; case 3: if (StackEmpty(S)) { cout 栈空 endl; } else { cout 栈未空 endl; } break; case 4: GetTop(S, e); cout e is e endl; break; case 5: StackLength(S); break; case 0:break; } } DestroyStack(S); return OK; } //SStack.cpp: #includeSStack.h //输出菜单 void Muse() { cout 请选择功能: endl; cout 1.入栈 endl; cout 2.出栈 endl; cout 3.判栈空 endl; cout 4.返回栈顶部数据 endl; cout 5.栈长 endl; cout 0.退出系统 endl; cout 你的选择是: ; } //创建栈 Status InitStack(SqStack S) { S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType)); if (!S.base) exit(ERROR); S.top = S.base; S.stacksize = STACK_INIT_SIZE; return OK; } //得到顶部数据 Status GetTop(SqStack S, SElemType e) { if (S.base == S.top) return ERROR; e = *(S.top - 1); return OK; } //入栈 Status Push(SqStack S, SElemType e) { if (S.top - S.base = STACK_INIT_SIZE) { S.base = (SElemType *)realloc(S.base, (STACK_INIT_SIZE + STACKINCREMENT) * sizeof(SElemType)); if (!S.base) exit(ERROR); S.top = S.base + S.stacksize; S.stacksize += STACKINCREMENT; } *S.top++ = e; return OK; } //出栈 Status Pop(SqStack S, SElemType e) { if (S.base == S.top) { return ERROR; } e = *--S.top; coutpop succeedendl; return OK; } //判栈空 Status StackEmpty(SqStack S) { if (S.top == S.base) { return ERROR; } return OK; } //销毁栈 Status DestroyStack(SqStack S) { free

文档评论(0)

502992 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档