第五周项目3-括号的匹配

    xiaoxiao2023-03-24  2

    问题:

    /* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目3.cbp 作 者:杨雅鑫 完成日期:2016年9月27日 版 本 号:v1.0 问题描述:假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。 例如,输入2+(3+4)*[2+{[3]}]-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。 输入描述:输入表达式 程序输出:输出判断结果 */ 利用顺序栈算法库,头文件sqsack.h以及函数实现详见顺序栈算法库。

    主函数main.cpp代码:

    #include "sqstack.h" int main() { char c; char st[50]; int d=1, i; SqStack *s; InitStack(s); printf("请输入表达式:"); scanf("%s", st); for(i=0; st[i]!='\0'&&d; i++) { switch(st[i]) { case'(': case'[': case'{': Push(s, st[i]); break; case')': Pop(s, c); if(c!='(') d=0; break; case']': Pop(s, c); if(c!='[') d=0; break; case'}': Pop(s,c); if(c!='{') d=0; break; } } if(StackEmpty(s)&&d==1) printf("配对正确!!\n"); else printf("配对错误!!\n"); return 0; } 运行结果:

    知识点总结:

    利用顺序栈算法库解决具体问题。

    学习心得:

    其实都是最基础的知识的应用。

    转载请注明原文地址: https://ju.6miu.com/read-1200285.html
    最新回复(0)