错误的括号代码
来源:互联网 发布:cad看图软件mac版免费 编辑:程序博客网 时间:2024/06/07 08:50
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int top; //栈指针
} SqStack; //顺序栈类型定义
void InitStack(SqStack *&s); //初始化栈
void DestroyStack(SqStack *&s); //销毁栈
bool StackEmpty(SqStack *s); //栈是否为空
int StackLength(SqStack *s); //返回栈中元素个数——栈长度
bool Push(SqStack *&s,ElemType e); //入栈
bool Pop(SqStack *&s,ElemType &e); //出栈
bool GetTop(SqStack *s,ElemType &e); //取栈顶数据元素
void DispStack(SqStack *s); //输出栈
bool Match(char exp[]);
void InitStack(SqStack *&s)
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
void DestroyStack(SqStack *&s)
{
free(s);
}
int StackLength(SqStack *s) //返回栈中元素个数——栈长度
{
return(s->top+1);
}
bool StackEmpty(SqStack *s)
{
return(s->top==-1);
}
bool Push(SqStack *&s,ElemType e)
{
if (s->top==MaxSize-1) //栈满的情况,即栈上溢出
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
s->top--;
return true;
}
bool GetTop(SqStack *s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
return true;
}
void DispStack(SqStack *s) //输出栈
{
int i;
for (i=s->top;i>=0;i--)
printf("%c ",s->data[i]);
printf("\n");
}
bool Match(char exp[])
{
int i;
char e;
bool match=true;
SqStack *st;
InitStack(st);
for(i=0; exp[i]!='\0'&&match; i++)
{
if(exp[i]=='('||exp[i]=='['||exp[i]=='{')
Push(st,exp[i]);
else if(exp[i]==')'||exp[i]==']'||exp[i]=='}')
{
if(GetTop(st,e)==true)
{
if(exp[i]=='('&&e=='(')
{
match=true;
Pop(st,e);
}
else match=false;
if(exp[i]=='['&&e=='[')
{
match=true;
Pop(st,e);
}
else match=false;
if(exp[i]=='{'&&e=='{')
{
match=true;
Pop(st,e);
}
else match=false;
}
}
}
if(!StackEmpty(st))
match=false;
DestroyStack(st);
return match;
}
int main()
{
char exp[50];
printf("请输入表达式:");
scanf("%exp", exp);
if(Match(exp))
printf("配对正确!!\n");
else
printf("配对错误!!\n");
return 0;
}
错误之处:
- 错误的括号代码
- 写个括号错误查找的问题
- JavaScript代码的括号匹配问题
- 辩:代码中括号的取舍
- 括号匹配算法的C++代码实现
- 优先级引起的错误(括号还是很有用的)。
- 一个括号引起的不易发现的错误
- 正确和错误只差一个括号的位置
- 第一次犯一个括号位置引发的逻辑错误
- Java实现的计算器(带括号和错误输入提示)
- eclipse 可以自动进行代码块的括号匹配【看括号的背景阴影】;双击括号,括号间的内容会被着色,进而凸显。
- synchronized锁住的是括号里的对象,而不是代码。
- 伪代码:括号匹配
- 括号匹配-java代码
- VS2008中定位代码前一个大括号的方法
- 用栈写一个括号匹配的小代码玩玩
- 检查代码中大括号的匹配情况
- 代码的优化过程: 生成括号 Generate Parentheses
- 测试用例的设计
- 【第6周 项目3 - 括号的匹配】
- [Leetcode-142] Linked List Cycle II(链表有环详细分析)
- 第六周 项目2 建立链栈算法库
- C++编译后的函数名反向
- 错误的括号代码
- 转自:系统运维 » 导出Windows服务器下的Oracle数据库并导入到Linux服务器下的Oracle数据库中
- iOS开发中coredata的使用和数据持有化
- dojo使用Programmatic(程序)方式创建form组件没有lable属性的解决
- 第六周 建立链栈算法库
- *第六周*数据结构实践项目二【建设链栈算法库】
- Rotate Image - LeetCode
- 让智能硬件,真正改变生活
- 怎么使ofbiz连接Mysql