括号匹配问题(栈) 您所在的位置:网站首页 词抒笙歌的意思 括号匹配问题(栈)

括号匹配问题(栈)

2023-08-14 18:58| 来源: 网络整理| 查看: 265

题目描述 假设表达式中允许包含两种括号:圆括号和方括号。编写一个算法判断表达式中的括号是否正确配对。 输入: 由括号构成的字符串,包含”(“、”)“、”[“和”]“。 输出: 匹配输出YES,否则输出NO。 样例输入 [([])] 样例输出 YES 代码实现: #include #include< iostream> using namespace std; #define Max 1000 typedef struct A{ char array[Max]; int top; }Stack,*SQtack; void init(SQtack &L)//初始化栈 { L->top=-1; } void push(SQtack &L,char s)//压栈 { L->top++; L->array[L->top]=s; } char pup(SQtack &L)//出栈 { if(L->top==-1) return -1; else { int n=L->top; L->top–; return L->array[n]; } } int main() { SQtack L; L=new Stack; init(L); char s,e; int flag=1;//标志 while(scanf("%c",&s)) { if(s==’\n’) break; if(s==’[’||s==’(’)//遇到(和[就进栈 push(L,s); if(s==’]’)//遇到)和]就出栈比较 { e=pup(L); if(e!=’[’) flag=0;

} if(s==')') { e=pup(L); if(e!='(') flag=0; } } if(flag==1) cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有