栈练习——括号匹配
2023-02-26 12:28:31 时间
括号匹配
#include<iostream> #include<string> #include<cstring> using namespace std; #define OVERFLOW -2 #define OK 1 #define ERROR -1 typedef int Status; typedef char SElemType; typedef struct StackNode { SElemType data; struct StackNode* next; }StackNode, * LinkStack; // 链栈初始化 void InitStack(LinkStack& S) { S = NULL; } // 判断链栈是否为空 Status StackEmpty(LinkStack S) { if (S == NULL) return 1; else return 0; } Status GetTop(LinkStack S, SElemType& e) { if (StackEmpty(S)) return ERROR; e = S->data; return OK; } // 入栈 Status Push(LinkStack& S, SElemType e) { LinkStack p; p = new StackNode; if (!p) exit(OVERFLOW); p->data = e; p->next = S; S = p; return OK; } // 出栈 Status Pop(LinkStack& S) { if (StackEmpty(S)) return ERROR; LinkStack p; p = S; S = S->next; delete p; p = NULL; return OK; } /*-----------括号匹配----------*/ int Match(string str) { LinkStack S; int i; SElemType e; InitStack(S); for (i = 0; i < str.length(); i++) { /* 此处不可使用strlen(str) strlen() 参数为const char* 类型 --------------------------- char cstr[20]; strcpy(cstr, str.c_str()); --------------------------- */ if (str[i] == '(' || str[i] == '[' || str[i] == '{') Push(S, str[i]); if (str[i] == ')' || str[i] == ']' || str[i] == '}') { if (StackEmpty(S)) { cout << "右括号多!"; return ERROR; } else { GetTop(S, e); if((e == '(' && str[i] == ')') || (e == '[' && str[i] == ']') || (e == '{' && str[i] == '}')) Pop(S); else { cout << "次序乱!"; return ERROR; } } } } if (StackEmpty(S)) { cout << "匹配成功!"; return OK; } else { cout << "左括号多!"; return ERROR; } } int main() { string str; cout << "请输入字符串:"; cin >> str; Match(str); return 0; }
请输入字符串:fdas(fd( 左括号多!
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- DDR5 or DDR4 ?
- PCIE3.0/4.0/5.0 带宽
- Photoshop 2017软件安装教程--所有PS版本都有!
- M.2傲视群雄——Intel OPTANE 905P 380G M.2评测
- 群晖NAS基础服务 - 配置邮件通知服务
- Corsair AX1600i 钛金数字电源评测
- Photoshop 2019 软件安装包+安装教程--所有PS版本都有!
- 搞起!Adobe PhotoShop CC 2020 图像处理软件 | --所有PS版本都有!
- 什么是RAID,哪种存储方式更安全呢?
- Photoshop cc 2020 Mac版软件安装教程--所有PS版本都有!
- ps2019最新下载地址+安装教程图解--所有PS版本都有!
- 软件 | PS Mac版安装方法
- 群辉Synology DSM 添加HDD硬盘/存储空间的方法
- Photoshop CS2软件下载地址及安装教程--所有PS版本都有!
- 黑群辉DSM 6.2.3 系统安装图文教程
- Photoshop CS3软件下载地址及安装教程--所有PS版本都有!
- N个MacOS+Mac PE+Win10pe+Win7+Win10多合一U盘、移动硬盘制作教程
- 最全插座盘点,90%的人后悔没早收藏
- Photoshop CC2019软件安装图文教程--所有PS版本都有!
- 教大家关闭一些我们用不到的服务,来提高电脑的运行速度