数据结构括号匹配算法代码讲解_以下数据结构中是非线性数据结构

数据结构括号匹配算法代码讲解_以下数据结构中是非线性数据结构数据结构13: 括号匹配算法及C语言实现#include <stdio.h>#include <string.h>int top = -1;  //top变量时刻表示栈顶素所在位置void push

数据结构13: 括号匹配算法及C语言实现   #include <stdio.h> #include <string.h>   int top = -1;  //top变量时刻表示栈顶素所在位置 void push(char *a, int elem)   { a[++top] = elem; }   void pop(char *a)   { if (top == -1) return ; top–; }   char visit(char * a)   { //调取栈顶素,不等于弹栈,如果栈为空,为使程序不发生错误,返回空字符 if (top != -1)   { return a[top]; }   else   { return ‘ ‘; } }   int main()   { char a[30]; char bracket[100]; printf(“请输入括号序列:”); scanf(“%s”, bracket); getchar(); int length = (int)strlen(bracket); for (int i=0; i<length; i++)   { //如果是左括号,直接压栈 if (bracket[i] == ‘(‘ || bracket[i] == ‘{‘)   { push(a, bracket[i]); }else{ //如果是右边括号,判断与栈顶素是否匹配,如果匹配,栈顶素弹栈,程序继续运行;否则,发现括号不匹配,输出结果直接退出 if (bracket[i] == ‘)’)   { if (visit(a) == ‘(‘)   { pop(a); }   else   { printf(“括号不匹配”); return 0; } }   else   { if (visit(a) == ‘{‘)   { pop(a); }   else   { printf(“括号不匹配”); return 0; } } } } //如果所有括号匹配完成,栈内为空,说明所有括号全部匹配成功 if (top != -1)   { printf(“括号不匹配”); }   else   { printf(“括号匹配”); } }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/77064.html

(0)
上一篇 2024年 8月 4日
下一篇 2024年 8月 4日

相关推荐

关注微信