问题描述:假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。

例如,输入2+(3+4)*[2+{[3]}-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。

通过了解问题,我们发现可以使用栈的数据结构来解决这个问题,每输入一个前括号字符,即入栈,每输入一个后括号字符,即出栈,然后进行匹配,匹配结果为1或0,即正确与不正确。

程序分为两个部分,主函数部分和头文件部分,头文件使用了之前构建的链栈算法库的部分,此处不再赘述,我们只要注意下主函数部分的算法就好。

主函数:

#include "sqstack.h"
int main()
{char c;char st[50];int d=1, i;         //d作为辨别配对是否正确的整形变量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')':              //辨别是否配对,成功为1,失败为0Pop(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");elseprintf("配对错误!!\n");return 0;
}

输出结果:

我分别测试了正确的配对与错误的配对,程序运行无措。

新手上路,如有错误欢迎指正p

*第六周*数据结构实践项目三【括号的配对】相关推荐

  1. 第十六周上机实践—项目2—大数据集上排序算法性能的体验

    /* *Copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:林莉 *完成日期:2015年12月18日 *版本:v1 ...

  2. [数据结构实践项目]变态的停车场管理系统

    [数据结构实践项目]变态的停车场管理系统 项目简介 设停车场是一个可以停放 n 辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出.汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在 ...

  3. 数据结构实践项目——图的基本运算及遍历操作

    本文是针对[数据结构基础系列(7):图]中第1-9课时的实践项目. 0701 图结构导学 0702 图的定义 0703 图的基本术语 0704 图的邻接矩阵存储结构及算法 0705 图的邻接表存储结构 ...

  4. 第16周实践项目三——点结构体(2)

    问题及代码 (2)请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果如下图所示: /*烟台大学计算机学院 2016 作者: 马春澎完成日 ...

  5. 数据结构 实践项目——数据结构、算法、程序设计

    [项目1 - C/C++语言中函数参数传递的三种方式] C语言提供了两种函数参数传递的方式:传值和传地址.在C++中,又拓展了引用方式.通过本项目,确认自己已经掌握了这三种方式的原理,为后续学习做好准 ...

  6. 《C语言及程序设计》实践项目——三种循环语句

    返回:贺老师课程教学链接 [项目1:利用循环求和] 求1000以内所有偶数的和 要求:请编出3个程序来,分别用三种循环语句完成,注意体会各种循环语句的执行过程及语法特点. [参考解答] [项目2:求阶 ...

  7. 数据结构:项目三、算术表达式求解

    一.问题描述及基本要求 [问题描述] 设计一个简单的算术表达式计算器. [基本要求]  实现标准整数类型的四则运算表达式的求值(包含括号,可多层嵌入). [测试数据] (30+2*70)/3-12*3 ...

  8. 团队作业第六周--alpha阶段项目复审

    小组名字 优点 缺点&Bug报告 排名 大猪蹄子队 一款你值得拥有的学习软件 登录页面在360浏览器会显示有误,测验功能不能提交答案,部分功能也尚未完成 1 GG队 音乐冒险类游戏,新颖的游戏 ...

  9. 第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)

    问题及代码: [项目-实现复数类中的运算符重载] (1)请用类的成员函数,定义复数类重载运算符+.-.*./,使之能用于复数的加减乘除 class Complex { public:Complex() ...

  10. 数据结构实践项目:校园路线导航图

    题目: 23.校园路线导游系统 1.问题描述 用无向网表示东莞理工学院的校园景点平面图,图中顶点表示主要景点(要求包 含学校的大部分景点信息,包括教学楼,体育馆,食堂,学生宿舍,图书馆等信息), 存放 ...

最新文章

  1. HTML5 手写板签名
  2. Insert SQL Query插入效率优化
  3. 26个导航设计非常独特的网站案例欣赏
  4. Merge Sorted Array
  5. 【django】如何搭建虚拟环境(解决mkvirtualenv:未找到命令)
  6. 《***测试实践指南》D03
  7. [css] 什么是脱离文档流?有什么办法可以让元素脱离标准的文档流?
  8. 写出表格的结构html,一个面试题,根据json结构生成html表格
  9. python内建模块_Python 内建模块
  10. 安卓手机老是自动保存图片_Redmi K30 Pro自动亮度调节和iPhone基本一致,安卓手机的大进步...
  11. long类型转成integer类型避免空指针的方法_解决swagger的类型转换报错问题
  12. servletconfigservletcontext
  13. 智能计算系统(学习笔记)-第三章深度学习
  14. C语言写俄罗斯方块,可上机运行
  15. BZOJ1857: [Scoi2010]传送带(三分套三分)
  16. 仿Windows画板喷漆笔刷效果
  17. Web services详解 :入门必看 | WSDL、SOAP
  18. TM4C123系列ARM单片机开发入门介绍
  19. CStdioFile之ReadString()与WriteString()注意事项
  20. C#根据百家姓,将姓转拼音处理

热门文章

  1. 只读的泛型集合(IList(Of T))
  2. 概念理解之装箱与拆箱
  3. 「leetcode」C++题解:226.翻转二叉树,递归法与迭代法详解
  4. poj 2362 Square 经典深搜
  5. Pr 入门教程,如何创建标题?
  6. iOS开发之UITableViewController指定刷新cell 或section
  7. EverWeb for Mac(网页设计软件)
  8. Alfred 4 for Mac(应用快速启动器)
  9. 23种设计模式-状态模式
  10. NodeJS基础2---1 Promise小球运动