社区
数据结构与算法
帖子详情
用栈实现表达式括号匹配检验,要求用户输入表达式?
feixiangshunjian
2008-04-07 06:24:30
用栈实现表达式括号匹配检验,要求用户输入表达式?
这个程序要这么写?特别是主函数部分?
...全文
875
8
打赏
收藏
用栈实现表达式括号匹配检验,要求用户输入表达式?
用栈实现表达式括号匹配检验,要求用户输入表达式? 这个程序要这么写?特别是主函数部分?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
feixiangshunjian
2008-05-25
打赏
举报
回复
还有没有其他的程序呢?
realduke2000
2008-05-22
打赏
举报
回复
[Quote=引用 4 楼 onefours 的回复:]
遇到 ([{ : 进栈
遇到 ) : ( 出栈 不能就表明表达式不对
遇到 ] : [ 出栈 不能就表明表达式不对
遇到 } : { 出栈 不能就表明表达式不对
最后栈的size不为0也是错误
[/Quote]
这样的解法应该是正确的,但是你这样写我会以为你是用了3个栈。
你看遇到),(出栈,你怎么知道出栈的是(呢?
onefours
2008-05-21
打赏
举报
回复
[Quote=引用 5 楼 realduke2000 的回复:]
说的太简单了(a+b)是正确的么?
[a+(b+c])是正确的么?(4L的能检查这种情况么?)
需求给的不清楚,有几种括号?可以叠加么?
(a+(b+c))??
[/Quote]
[a+(b+c])
[ :进栈
a+ :忽视
( : 进栈
b+c :忽视
] : 出栈得到 ( 失败!!应该是[才是正确的
realduke2000
2008-05-21
打赏
举报
回复
说的太简单了(a+b)是正确的么?
[a+(b+c])是正确的么?(4L的能检查这种情况么?)
需求给的不清楚,有几种括号?可以叠加么?
(a+(b+c))??
onefours
2008-05-20
打赏
举报
回复
遇到 ([{ : 进栈
遇到 ) : ( 出栈 不能就表明表达式不对
遇到 ] : [ 出栈 不能就表明表达式不对
遇到 } : { 出栈 不能就表明表达式不对
最后栈的size不为0也是错误
feixiangshunjian
2008-05-19
打赏
举报
回复
2楼写的我看的不明白也,还有没有浅显易懂的?
meiZiNick
2008-05-01
打赏
举报
回复
我也想知道,正在找這方面的資料~~~~~
lzy340623339
2008-04-07
打赏
举报
回复
这个是我以前做过的,可以参考
#include "stdafx.h"
#include "iostream.h"
#include<stdlib.h>
#include "Stack.h"
#using <mscorlib.dll>
#include <tchar.h>
using namespace System;
status KuohaoPipei(char *c)
{
Stack S;
ElemType e=' ';
bool fal;
int i=0;
fal=1;
InitStack(S);
while(c[i]!='\0')
{
if(c[i]=='(' || c[i]=='[')
Push(S,c[i]);
else if(c[i]==')' || c[i]==']')
{
if(!EmptyStack(S))
{
fal=0;
break;
}
else
{
GetTop(S,e);
if(c[i]==')' && e=='(' || c[i]==']' && e=='[')
Pop(S,e);
else
{
fal=0;
break;
}
}
}
i++;
}
if(!EmptyStack(S))
fal=0;
if(fal)
cout<<"完全匹配!"<<endl;
else
cout<<"括号不匹配!"<<endl;
DestroyStack(S);
return OK;
}
int _tmain(int argc, _TCHAR* argv[])
{
char a[100];
cout<<"输入一串括号(10个),判断他们是否完全匹配:";
cin>>a;
KuohaoPipei(a);
return 0;
}
栈
#define ERROR 0
#define OK 1
#define STACK_SIZE 100
#define STACKINCREMENT 10
typedef int status;
typedef char ElemType;
typedef struct Stack{
ElemType *top;
ElemType *base;
int Stacksize;
}Stack;
/*status InitStack(Stack &S);
status DestroyStack(Stack &S);
status ClearStack(Stack &S);
status EmptyStack(Stack S);
status GetTop(Stack S,ElemType &e);
status Push(Stack &S,ElemType e);
status Pop(Stack &S,ElemType &e);
int LengthStack(Stack S);*/
status InitStack(Stack &S)
{
S.base=new ElemType[STACK_SIZE];
if(!S.base) return ERROR;
S.top=S.base;
S.Stacksize=STACK_SIZE;
return OK;
}
status DestroyStack(Stack &S)
{
if(!S.base) return ERROR;
S.top=S.base;
S.Stacksize=0;
delete S.base;
return OK;
}
status ClearStack(Stack &S)
{
if(!S.base) return ERROR;
S.top=S.base;
S.Stacksize=0;
return OK;
}
status EmptyStack(Stack S)
{
if(!S.base) return ERROR;
if(S.Stacksize==0) return 0;
return S.Stacksize;
}
status GetTop(Stack S,ElemType &e)
{
if(!S.base) return ERROR;
e=*(S.top-sizeof(ElemType));
return OK;
}
status Push(Stack &S,ElemType e)
{
//ElemType *newbase;
if(S.top-S.base>=S.Stacksize)
{
S.base=(ElemType *)realloc(S.base,S.Stacksize+STACKINCREMENT*sizeof(ElemType));
if(!S.base) return ERROR;
S.top=S.base+S.Stacksize;
S.Stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}
status Pop(Stack &S,ElemType &e)
{
if(S.top==S.base) return ERROR;
e=*--S.top;
return OK;
}
int LengthStack(Stack S)
{
return S.top-S.base;
}
用顺序栈判断
表达式
中括号是否匹配正确
在编程和计算机科学中,
表达式
中的
括号匹配
是一个重要的问题,它涉及到数据结构和算法的应用。本问题来源于《数据结构,算法及应用》一书,作者Zhang Xianchao,具体是P80页的第13题。本题主要考察的是栈这一数据...
表达式
的
括号匹配
检验
问题
###
表达式
的
括号匹配
检验
问题 #### 一、问题背景及定义 在计算机科学领域,
括号匹配
是一项常见的编程任务,它涉及到
表达式
的合法性验证。本问题旨在设计一个程序,该程序能够检查给定
表达式
中的括号是否正确配对...
C语言
实现
表达式
括号匹配
算法及程序
### C语言
实现
表达式
括号匹配
算法解析 #### 核心知识点 1. **栈的基本概念与应用** - 栈是一种特殊的线性表,只允许在表的一端进行插入和删除操作,遵循先进后出(First In Last Out, FILO)的原则。 - 在本例中...
括号匹配
用栈
实现
检测括号是否匹配
用栈
实现
括号匹配
的检测,链式栈
实现
()[]的检测可以
实现
表达式
括号匹配
配对判断实验报告(内附源代码)
在计算机科学中,
表达式
括号匹配
是一项基本且重要的任务,它涉及到算法设计与
实现
,尤其是在编译原理、解析器构造以及程序验证等领域。本实验报告将深入探讨这个主题,并提供源代码作为实践示例。 首先,我们需要...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章