- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 栈和队列 M
软件学院 数据结构 实验报告
2014 级 软件工程 专业
班级: 191 学号: 201419118 姓名: 孟 国 元
实验二 栈和队列的模拟操作
一、实验目的二、实验内容] }
输出:匹配括号对或者不匹配的结果(优先配对的顺序),例如( ) ( ) [ ] { }( ) 括号序列匹配 或者[ ] ( ) ( ) ] } 括号序列不匹配
1.2 具体操作的函数模块功能说明:
(1)栈的存储结构(顺序存储结构)
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;//顺序栈
(2)初始化一个空栈
函数:void InitStack(SqStack *S)
(3)入栈
函数:void Push(SqStack *S, SelemType x)//插入x为新的栈顶元素
(4)出栈
函数:ElemType Pop(SqStack *S) //若栈不空,则删除栈的栈顶元素,用e返回其值,并返回OK,否则返回ERROR
(5)匹配检验括号匹配的方法,就是对给定的字符串依次检验:若是左括号,入栈;若是右括号,出栈一个左括号判断是否与之匹配;是其他字符,不检验。检验到字符串尾,还要检查栈是否为空。只有栈空,整个字符串才是括号匹配的。void check(SqStack S,char *p);//对于*p指向的字符串序列,输出其中匹配的括号对
(6)主函数中实现输入和输出功能
SqStack S; //定义一个顺序栈
char ch[MAXNUM];//声明一个存储表达式的数组
1.3实验步骤:
#include stdio.h
#include stdlib.h
#include string.h
#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10
typedef char SelemType;
typedef struct{
SelemType *base;
SelemType *top;
int stacksize;//栈的存储长度
}SqStack;//顺序栈名
void InitStack(SqStack *S)//初始化栈
{
S-base=malloc(STACK_INIT_SIZE * sizeof(SelemType));
if(!S-base)
{
printf(初始化失败!\n);
exit(0);
}
else
{
S-top=S-base;
S-stacksize=STACK_INIT_SIZE;
printf(初始化成功!\n);
}
}
void Push(SqStack *S,SelemType e)//插入x为新的栈顶元素
{
if(S-top-S-base=S-stacksize)
{
S-base=(SelemType *)realloc(S-base,(S-stacksize+STACKINCREMENT) *sizeof(SelemType));
if(!S-base)
{
printf(开辟内存失败!\n);
exit(0);
}
S-top=S-base+S-stacksize;
S-stacksize+=STACKINCREMENT;
}
*S-top = e;
S-top++;
}
int Pop(SqStack *S)
{
char e;
if(S-base==S-top)
{
printf(此栈为空!\n);
return 0;
}
else
{
e=* --S-top;
return 1;
}
}
void Check(SqStack *S)
{
int i,j=0;
char ch[20],ch1[20]=\0;
printf(请输入字符串序列:);
scanf(%s,ch);
for(i=0;istrlen(ch);i++)
{
if(ch[i]==( || ch[i]==[)
{
Push(S,ch[i]);
ch1[j]=ch[i];
j++;
}
else if(ch[i]==) *(S-top-1)==( || ch[i]==] *(S-
您可能关注的文档
- 实际使用 必威体育精装版14年10月生物力学第二章.ppt稿.ppt
- 实践创意产业与创意人才培养.pptx
- 实际问题与一元二次方程课件0.ppt
- 实际质量环境管理体系一体化内部审核检查表.doc
- 实验 基础汇编语言程序设计.docx
- 实验 UML知识回顾回顾.doc
- 实验06访问数据库.doc
- 实验1 交互式SQL.doc
- 实验-4__基本运算放大电路的研究xin.ppt
- 实验-5__基本运算放大电路的研究xin.ppt
- 2025年贵州工业职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年西昌民族幼儿师范高等专科学校高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年西藏警官高等专科学校高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年贵州工商职业学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 2025年贵州工商职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年贵州农业职业学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年许昌职业技术学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年许昌职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
最近下载
- 渝22J01 建设工程施工现忱高处坠落生命线设置标准图集 DJBT50-155.docx VIP
- 六大纪律党纪学习教育专题个人发言材料.pptx VIP
- 延河随想 二胡简谱分谱.pdf
- 【党纪学习】党纪学习研讨发言材料(精选).docx VIP
- 中建《建筑施工高处作业安全带系挂点推荐图集》2023发布.pdf VIP
- 《韩国语应用文写作实训教程》电子课件.ppt
- 中建《建筑施工高处作业安全带系挂点推荐图集》2023发布.doc VIP
- 2024年民主生活会个人对照检查材料3篇范文.docx VIP
- 2025春季开学家长会PPT .pptx VIP
- 党纪学习教育“六大纪律”检视剖析材料范文(三篇).docx VIP
文档评论(0)