考研数据结构与算法之堆栈的使用(三)利用堆栈匹配括号
来源:互联网 发布:电脑打不开windows 编辑:程序博客网 时间:2024/05/16 12:33
具体实现方法如下:
int main(void){ SqStack S; InitStack(S); char str[255]; scanf("%s",str); int i = 0; while( str[i] != '\0') { if( (str[i]=='[') | (str[i]=='{') | (str[i]=='<') ) { Push(S, str[i]); }else if( (str[i]==']') || (str[i]=='}') || (str[i]=='>') ) { if(!StackEmpty(S)) { char t; GetTop(S, t); if( t == str[i]-2 ) Pop(S, t); }else break; } i++; } if( StackEmpty(S) && (str[i] == '\0') ) { printf("YES"); }else { printf("NO"); } system("pause");}注意一个很有意思的问题,在教材中匹配的是括号是[] {}和()而我则不使用()原因是他俩的ASCII码相差为1而其他的都是2,为了运算方便而进行了简化。另外还要更正之前对GetTop方法的定义,修改后的该函数如下:
Status GetTop(SqStack &S, SElemType &e){if( S.base == S.top )return ERROR;e = *(S.top - 1);return OK;}
确实是我疏忽了,由于觉得简单就忘记了对它进行测试,结果今天使用的时候怎么也出不来结果。
0 0
- 考研数据结构与算法之堆栈的使用(三)利用堆栈匹配括号
- 考研数据结构与算法之堆栈的使用(二)利用堆栈实现进制转换
- 考研数据结构与算法之堆栈的使用(三)数组实现的堆栈
- 考研数据结构与算法之堆栈的使用(四)链表实现的堆栈
- 考研数据结构与算法之堆栈的建立与使用(一)
- 堆栈数据结构应用之括号匹配检查(算法3.2.2)
- 算法复习--------------利用堆栈实现括号匹配
- 考研数据结构与算法之利用堆栈实现行编辑程序
- 面试算法:使用堆栈判断括号的匹配
- 使用堆栈实现括号的匹配
- 数据结构之SeqStack---堆栈应用---括号匹配问题
- 括号匹配(不用堆栈)
- 【数据结构与算法】堆栈
- 算法——括号匹配问题(堆栈应用)
- 堆栈--括号匹配检验
- java堆栈(Deque双向队列)应用之括号匹配
- 数据结构与算法-----堆栈-使用数组(顺序结构)实现
- 不用堆栈实现的括号匹配
- Linked List Cycle
- 业务用例(Rose) - Windows XP经典软件系列
- 大S产女获张兰连续两天探望 大赞儿媳妇是骄傲
- 04-27 看面经做题
- 随机游走的PageRank算法 sensitive PageRank
- 考研数据结构与算法之堆栈的使用(三)利用堆栈匹配括号
- Best Time to Buy and Sell Stock II
- 图算法小总结(小Tip)
- 如何打开已经创建的MongoDB数据库
- C#小练习:SerialPort读写操作
- matlab 6.800e+0.03(已解决)
- opencv中的meanshift图像分割
- KM算法 详解+模板
- ubuntu server下调用boost::filesystem失败