/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名称:20171102(4).cpp *作者:李小同 *完成日期;2017年11月02日 *版本号;v1.1 * *问题描述:如下*输入描述:功能需求 *程序输出:所需功能的实现
*/ 

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

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

#include <stdio.h>
#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");elseprintf("配对错误!!\n");return 0;
}

第5周【项目3 - 括号的匹配】相关推荐

  1. 数据结构上机实践第五周项目3 - 括号的匹配

    括号的匹配 本次实践将用到顺序栈的算法库,点击此处参考. 本次实践要求: 假设表达式中允许三种括号:圆括号.方括号和大括号.编写一个算法,判断表达式中的各种左括号是否与右括号匹配.  例如,输入2+( ...

  2. 第2关:利用栈判断字符串括号是否匹配

    #ifndef stack__h #define stack__h#include <stdio.h> #include <stdlib.h>typedef char T; / ...

  3. python 判断括号是否匹配_使用Python实现一个栈判断括号是否平衡

    栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top). 举个例子,栈就想一摞洗干净的盘子,你每次取一个新盘子,都是放在这一摞盘子的最上头,当你往里 ...

  4. 第七周项目三-用多文件组织多个类的程序

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月13日*版 本 号:v1. ...

  5. LeetCode Valid Parentheses(判断括号是否匹配)

    题意:给出(,[,{,),],}括号组成的字符串, 判断括号是否匹配 思路:用栈结构判断 1.如果是(,[,{,将其入栈 2.如果遇到),],},看栈是否为空.栈顶元素是否对应为(,[,{ 3.将字符 ...

  6. 数据结构算法——判断表达式中的括号是否匹配

    元旦三天假,闲着没事干,就想着复习一下学数据结构时的那些算法吧.本来是想用C语言来写的,无奈啊,三四年没用C了,基本上忘光光,还是用C#来写吧,而且.Net基类库中已经有了栈.队列等的实现,直接拿来用 ...

  7. 判断字符串中的括号是否匹配——c和c++实现

    判断字符串中的括号是否匹配 递归实现:  先检搜一对匹配的括号,再对里面的内容进行匹配,匹配完后再继续往下匹配--  代码如下: #include <stdio.h> #include & ...

  8. java小编程----括号是否匹配

    错误示例::: 当 String s = "...(...[....]....{...}...)...(.[..)..";     应输出3 package com.henu.ji ...

  9. python中用函数设计栈的括号匹配问题_数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题...

    算法 数据结构 数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题 在平时写程序当中,我们会经常遇到程序当中括号的匹配问题,也就是在程序当中左括号的数量和右括号的数量必须相等.如 ...

最新文章

  1. Evolview:提升系统进化树颜值
  2. C++面试题:list和vector有什么区别
  3. Java中final关键字的几种用法
  4. doctype声明的意义
  5. 6月15日起,刷卡机不能自选商户了,这样会有多少卡被封掉?
  6. [BZOJ1497] [NOI2006]最大获利
  7. 对象入参指定泛型类型_为什么要使用泛型,而不是直接将类型作为参数传递?
  8. python开发【基础二】
  9. mysql 从库relay_MySQL主库binlog(master-log)与从库relay-log关系代码详解
  10. libcudart.so.8.0 cannot open shared object file: No such file or directory
  11. git(4)---Git、Repo、Gerrit三者的区别
  12. 斯特林数-斯特林反演
  13. 深入浅出hive-hive简介
  14. jetty源码阅读总结1
  15. 【二进制】Special Numbers
  16. Atitit 文件读取规范 目录 1.1. 以fgetss取代fgets读取一行并过滤掉 HTML 和 PHP 标记。 1 1.2. 3. 以二进制读取 fread取代fgets 1 1.3. 4.
  17. SLIC超像素分割并保存分割得到的超像素块,python代码
  18. mysql中的预留字段_数据库设计误区:备用字段 / 保留字段 / 预留字段
  19. STL笔记:rb_tree
  20. HTML:使用单选框、复选框,让用户选择

热门文章

  1. PCL点云库安装及学习(2021.7.28)
  2. AT91RMM9200的PIO使用与设置
  3. 第一个接受素数定理的人
  4. html导入mybase,mybase使用技巧 mybase具体的操作方法
  5. Cloudin云英面试题:0的阶乘自然数e的意义
  6. VCSA启用WinSCP上传文件方法
  7. 数据结构实践——稀疏矩阵相加
  8. Webpack 常用 loader 和 plugin 汇总
  9. C++类和对象成员函数,静态成员,构造函数和析构函数、初始化列表
  10. 你们要的代码来了!爬了菊姐的两万条评论——详细代码解读篇