数据结构作业-6

题目:试编写一个判别表达式中开、闭括号是否合法配对出现的算法。

1.需求分析

对于用户输入的字符串,判断其中的括号是否匹配。

输入:含有括号的字符串

输出:字符串中的括号是否匹配

 

2.概要设计

    对于每一种括号,使用计数器进行累加,若是左括号,累加器自加;若是右括号,累加器自减。

 

3.详细设计

流程图如下:

4.调试分析

本例使用了计数器累加的方法实现了括号是否匹配的判断。

更为先进的方法是使用栈实现。若为左括号,执行push操作;若为右括号,执行pop操作。

 

5.使用说明

    运行程序,输入字符串,回车,查看结果。

 

6.测试结果

1)         测试

a)         {www}[ee]

b)         匹配

2)         测试

a)         wewwerre

b)         匹配

3)         测试

a)         {dg}hv(fg)

b)         匹配

4)         Ssd

a)         {<}

b)         不匹配

 

7.附录

源程序文件清单。

#include "stdafx.h" #include #include using namespace std; void panDuan(string str) { char c; int huaCount=0,yuanCount=0,jianCount=0,fangCount=0; for (int i=0;i': jianCount--; break;; case '[': fangCount++; break; case ']': fangCount--; break; default: break; } } if (huaCount==0&&yuanCount==0&&jianCount==0&&fangCount==0) { cout<<"匹配/n"; } else { cout<<"不匹配/n"; } } int _tmain(int argc, _TCHAR* argv[]) { string str; cout<<"请输入含有{,},(,),<,>,[,]的字符串/n"; cin>>str; panDuan(str); system("pause"); return 0; }

你可能感兴趣的:(数据结构)