数据结构C语言版顺序栈上机实验

上传人:文*** 文档编号:64333014 上传时间:2022-03-21 格式:DOC 页数:13 大小:41.50KB
返回 下载 相关 举报
数据结构C语言版顺序栈上机实验_第1页
第1页 / 共13页
数据结构C语言版顺序栈上机实验_第2页
第2页 / 共13页
数据结构C语言版顺序栈上机实验_第3页
第3页 / 共13页
点击查看更多>>
资源描述
文档供参考,可复制、编制,期待您的好评与关注! 实验 3-1 链栈目的 掌握链栈的实现和简单的应用。源代码/* title: 数据结构实验 name: 栈的链式存储结构 object: 实验目的 采用链式存储结构实现栈的基本操作 实验提示 1. 在stack.h中实现栈的基本操作, 在链式存储结构中可是省去头结点。 2. 在dsp0301.cpp中编写适当的代码,进行测试 include: stack.h * 栈的链式实现 usage: 请查看TO-DO列表,根据要求完成代码 copyright: BTC 2004, Zhuang Bo author: Zhuang Bo date: 2004 description:*/#include #include /for system()#include stack.h /链栈 /测试链栈的主程序int main() LinkStack s; int x; /输入若干正整数以0结束,依次入栈,然后依次出栈并打印 InitStack(s); printf(输入若干正整数以0结束:); scanf(%d,&x); while(x!=0) Push(s,x); scanf(%d,&x); printf(n出栈结果:); while(!StackEmpty(s) Pop(s,x); printf(%4d,x); /- / TODO (#1#): 其它测试程序 /- DestroyStack(s); /销毁栈 system(PAUSE); return 0;/* Name: 栈的链式实现 Copyright: Author: Date: Description: */#ifndef STACK_H_INCLUDED#define STACK_H_INCLUDED#include ds.h /for Status,OK .#ifndef ElemType#define ElemType int /* 数据元素类型默认为 int */#define ELEMTYPE_TAG#endif/链栈的存储结构定义 typedef struct LNode ElemType data; struct LNode *next; LNode, *LinkList;typedef LinkList LinkStack; /链栈类型 /链栈的基本操作声明/构造一个空栈S Status InitStack(LinkStack &S);/销毁栈S Status DestroyStack(LinkStack &S);/将栈S清空 Status ClearStack(LinkStack &S);/若栈S为空返回TRUE,否则FALSE Status StackEmpty(LinkStack S);/返回栈S中的元素个数int StackLength(LinkStack S);/用e返回栈顶元素/ 前提:栈S存在且不空 Status GetTop(LinkStack S, ElemType &e);/元素e入栈S Status Push(LinkStack &S, ElemType e);/S出栈用e返回出栈元素 / 前提:栈S存在且不空 Status Pop(LinkStack &S, ElemType &e);/链栈的基本操作的实现/构造一个空栈S Status InitStack(LinkStack &S) / TODO (#1#): 构造一个空栈S,不带头结点 return ERROR; /-/销毁栈S Status DestroyStack(LinkStack &S) / TODO (#1#):销毁栈S,相当于清空栈 return ERROR; /-/将栈S清空 Status ClearStack(LinkStack &S) / TODO (#1#): 将栈S清空,释放所有结点 return ERROR; /-/若栈S为空返回TRUE,否则FALSE Status StackEmpty(LinkStack S) / TODO (#1#): 若栈S为空返回TRUE,否则FALSE return TRUE; /-/返回栈S中的元素个数int StackLength(LinkStack S) / TODO (#1#): 返回栈S中的元素个数 return 0; /-/用e返回栈顶元素/ 前提:栈S存在且不空 Status GetTop(LinkStack S, ElemType &e) / TODO (#1#):若栈S不空,则用e返回栈顶元素 return ERROR; /-/元素e入栈S Status Push(LinkStack &S, ElemType e) / TODO (#1#): 插入元素e作为新的栈顶 return ERROR; /-/S出栈用e返回出栈元素 / 前提:栈S存在且不空 Status Pop(LinkStack &S, ElemType &e) / TODO (#1#):若栈S不空,则删除栈顶元素用e返回 return ERROR; /-#ifdef ELEMTYPE_TAG#undef ElemType#undef ELEMTYPE_TAG#endif#endif实验 3-2 顺序栈目的 掌握顺序栈的实现和简单的应用。源代码/* title: 数据结构实验 name: 栈的顺序存储结构 object: 实验目的 采用顺序存储结构实现栈的基本操作 实验提示 1. 在stack.h中实现栈的基本操作 2. 在dsp0302.cpp中编写适当的代码,进行测试 include: stack.h * 栈的顺序实现 usage: 请查看TO-DO列表,根据要求完成代码 copyright: BTC 2004, Zhuang Bo author: Zhuang Bo date: 2004 description:*/#include #include /for system()#include stack.h /for SqStack /测试顺序栈的主程序int main() SqStack s; int x; /输入若干正整数以0结束,依次入栈,然后依次出栈并打印 InitStack(s); printf(输入若干正整数以0结束:); scanf(%d,&x); while(x!=0) Push(s,x); scanf(%d,&x); printf(n出栈结果:); while(!StackEmpty(s) Pop(s,x); printf(%4d,x); /- / TODO (#1#): 其它测试程序 /- DestroyStack(s); /销毁栈 system(PAUSE); return 0;/* Name: 顺序栈的实现 Copyright: Author: Date: Description: */#ifndef STACK_H_INCLUDED#define STACK_H_INCLUDED#include ds.h /for Status,OK .#ifndef ElemType#define ElemType int /* 数据元素类型默认为 int */#define ELEMTYPE_TAG#endif#define SElemType ElemType/顺序栈的存储结构定义 #define STACK_INIT_SIZE 100 /* 存储空间初始分配容量 */#define STACKINCREMENT 10 /* 存储空间分配的增量 */typedef struct ElemType *base; /在构造栈之前和销毁栈之后,base为NULL ElemType *top; /栈顶指针 int stacksize; /当前已分配的存储空间(元素个数) SqStack;/顺序栈的基本操作声明/构造一个空栈S Status InitStack(SqStack &S);/销毁栈S Status DestroyStack(SqStack &S);/将栈S清空 Status ClearStack(SqStack &S);/若栈S为空返回TRUE,否则FALSE Status StackEmpty(SqStack S);/返回栈S中的元素个数int StackLength(SqStack S);/用e返回栈顶元素/ 前提:栈S存在且不空 Status GetTop(SqStack S, ElemType &e);/元素e入栈S Status Push(SqStack &S, ElemType e);/S出栈用e返回出栈元素 / 前提:栈S存在且不空 Status Pop(SqStack &S, ElemType &e);/顺序栈的基本操作的实现/构造一个空栈S Status InitStack(SqStack &S) / TODO (#1#): 构造一个空栈S return ERROR; /-/销毁栈S Status DestroyStack(SqStack &S) / TODO (#1#):销毁栈S,相当于清空栈 return ERROR; /-/将栈S清空 Status ClearStack(SqStack &S) / TODO (#1#): 将栈S清空,释放所有结点 return ERROR; /-/若栈S为空返回TRUE,否则FALSE Status StackEmpty(SqStack S) / TODO (#1#): 若栈S为空返回TRUE,否则FALSE return TRUE; /-/返回栈S中的元素个数int StackLength(SqStack S) / TODO (#1#): 返回栈S中的元素个数 return 0; /-/用e返回栈顶元素/ 前提:栈S存在且不空 Status GetTop(SqStack S, ElemType &e) / TODO (#1#):若栈S不空,则用e返回栈顶元素 return ERROR; /-/元素e入栈S Status Push(SqStack &S, ElemType e) / TODO (#1#): 插入元素e作为新的栈顶 return ERROR; /-/S出栈用e返回出栈元素 / 前提:栈S存在且不空 Status Pop(SqStack &S, ElemType &e) / TODO (#1#):若栈S不空,则删除栈顶元素用e返回 return ERROR; /-#ifdef ELEMTYPE_TAG#undef ElemType#undef ELEMTYPE_TAG#endif#endif/* title: 数据结构实验 name: 顺序栈和栈的应用 object: 实验目的 实现顺序栈;实现几个栈的具体应用 实验提示 1. 在stack.h中实现顺序栈 2. 在app0302.cpp中编写栈的应用程序, 数制转换,括号匹配的检验 include: stack.h * 顺序栈模块 usage: 请查看TO-DO列表,根据要求完成代码 copyright: BTC 2004, Zhuang Bo author: Zhuang Bo date: 2004 description:*/#include #include /for system()#include stack.h /for SqStack/数制转换程序void Conversion();/检验括号匹配void Match();int main() /数制转换程序 Conversion(); /检验括号匹配 Match(); system(PAUSE); return 0;/数制转换程序void Conversion() /- / TODO (#1#): 这里实现数制转换程序 /-/检验括号匹配void Match() /- / TODO (#1#): 这里实现检验括号匹配的程序 /-/* Name: 顺序栈的实现 Copyright: Author: Date: Description: */#ifndef STACK_H_INCLUDED#define STACK_H_INCLUDED#include ds.h /for Status,OK .#ifndef ElemType#define ElemType int /* 数据元素类型默认为 int */#define ELEMTYPE_TAG#endif#define SElemType ElemType/顺序栈的存储结构定义 #define STACK_INIT_SIZE 100 /* 存储空间初始分配容量 */#define STACKINCREMENT 10 /* 存储空间分配的增量 */typedef struct ElemType *base; /在构造栈之前和销毁栈之后,base为NULL ElemType *top; /栈顶指针 int stacksize; /当前已分配的存储空间(元素个数) SqStack;/顺序栈的基本操作声明/构造一个空栈S Status InitStack(SqStack &S);/销毁栈S Status DestroyStack(SqStack &S);/将栈S清空 Status ClearStack(SqStack &S);/若栈S为空返回TRUE,否则FALSE Status StackEmpty(SqStack S);/返回栈S中的元素个数int StackLength(SqStack S);/用e返回栈顶元素/ 前提:栈S存在且不空 Status GetTop(SqStack S, ElemType &e);/元素e入栈S Status Push(SqStack &S, ElemType e);/S出栈用e返回出栈元素 / 前提:栈S存在且不空 Status Pop(SqStack &S, ElemType &e);/顺序栈的基本操作的实现/构造一个空栈S Status InitStack(SqStack &S) / TODO (#1#): 构造一个空栈S return ERROR; /-/销毁栈S Status DestroyStack(SqStack &S) / TODO (#1#):销毁栈S,相当于清空栈 return ERROR; /-/将栈S清空 Status ClearStack(SqStack &S) / TODO (#1#): 将栈S清空,释放所有结点 return ERROR; /-/若栈S为空返回TRUE,否则FALSE Status StackEmpty(SqStack S) / TODO (#1#): 若栈S为空返回TRUE,否则FALSE return TRUE; /-/返回栈S中的元素个数int StackLength(SqStack S) / TODO (#1#): 返回栈S中的元素个数 return 0; /-/用e返回栈顶元素/ 前提:栈S存在且不空 Status GetTop(SqStack S, ElemType &e) / TODO (#1#):若栈S不空,则用e返回栈顶元素 return ERROR; /-/元素e入栈S Status Push(SqStack &S, ElemType e) / TODO (#1#): 插入元素e作为新的栈顶 return ERROR; /-/S出栈用e返回出栈元素 / 前提:栈S存在且不空 Status Pop(SqStack &S, ElemType &e) / TODO (#1#):若栈S不空,则删除栈顶元素用e返回 return ERROR; /-#ifdef ELEMTYPE_TAG#undef ElemType#undef ELEMTYPE_TAG#endif#endif13 / 13
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 各类标准


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!