数据结构实验(共13页).doc
《数据结构实验(共13页).doc》由会员分享,可在线阅读,更多相关《数据结构实验(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据结构实验报告实验序号:4 实验项目名称:栈的操作学号姓名专业、班实验地点指导教师实验时间一、实验目的及要求1. 熟悉栈的基本概念;2. 掌握栈的顺序存储结构;3掌握栈的应用。二、实验设备(环境)及要求微型计算机;windows 操作系统;Microsoft Visual Studio 6.0集成开发环境。三、实验内容与步骤1.栈的顺序表表示和实现的如下:#include #define MaxSize 100using namespace std;typedef int ElemType;typedef structElemType dataMaxSize;int
2、 top;SqStack;void InitStack(SqStack *st) /初始化栈st-top=-1;int StackEmpty(SqStack *st) /判断栈为空return (st-top=-1);void Push(SqStack *st,ElemType x) /元素进栈if(st-top=MaxSize-1)printf(栈上溢出!n);elsest-top+; /移动栈顶位置st-datast-top=x; /元素进栈void Pop(SqStack *st,ElemType &e) /出栈if(st-top=-1)printf(栈下溢出n);elsee=st-da
3、tast-top; /元素出栈st-top-; /移动栈顶位置int main()SqStack L;SqStack *st=&L;ElemType e;int i;InitStack(st);for(i=1;i10;+i)Push(st,i);printf(入栈元素是:%dn,i);for(i=1;i10;+i)Pop(st,e);printf(出栈元素是:%dn,e);return 0; 改写以上程序,实现功能如下:1)调用栈操作函数实现判别一个算术表达式中的圆括号配对是否正确。2)改写Push和Pop函数,使得以上两个函数可以一次性将一个数组入栈和出栈。(1)(2)2.C/C+的库函数中
4、已经实现了栈,实例如下:#include /引入栈using namespace std;int main()int a;stacks;scanf(%d,&a);s.push(a); /入栈printf(%dn,s.top(); /取得栈顶元素输出s.pop(); /出栈return 0; 请根据以上程序,设计算法如下:判别一个算术表达式中的圆括号和方括号配对是否正确。四、分析与讨论五、教师评语签名:日期:成绩附源程序清单:1.(1)#include #define MaxSize 100#define SUCCESS 0#define ERROR -1typedef structint nD
5、ataMaxSize;int nTop;SqStack;void InitStack(SqStack *PST_List) /初始化栈PST_List -nTop = -1;int StackEmpty(SqStack *PST_List) /判断栈为空if (PST_List -nTop = -1)return ERROR;elsereturn SUCCESS;void Push(SqStack *PST_List, int nData) /元素进栈if (PST_List -nTop = MaxSize - 1)printf(栈上溢出!n);elsePST_List -nTop+; /移动
6、栈顶位置PST_List -nDataPST_List-nTop = nData; /元素进栈void Pop(SqStack *PST_List, int *pnData) /出栈if (PST_List -nTop = -1)printf(栈下溢出n);elsepnData = &PST_List -nDataPST_List -nTop; /元素出栈PST_List -nTop-; /移动栈顶位置int GetTop(SqStack *PST_List) /获取栈顶if ( ! StackEmpty(PST_List) ) /先判断是否为空栈,不是空栈则返回栈顶return (PST_L
7、ist-nDataPST_List -nTop);elsereturn ERROR;int JudgeBrackets(SqStack *PST_List) /判断圆括号是否配对成功char cData;/输入变量int nSign = 0;/判断标志int *pnData = NULL;/传入pop中的参数printf(请输入一个表达式:);cData = getchar();while (cData != n) /按下回车结束死循环switch (cData)case (: /对于左括号就入栈Push(PST_List, (int)cData); break;case ):if (GetT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 13
限制150内