第5周【项目3 - 括号的匹配】
/* *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 - 括号的匹配】相关推荐
- 数据结构上机实践第五周项目3 - 括号的匹配
括号的匹配 本次实践将用到顺序栈的算法库,点击此处参考. 本次实践要求: 假设表达式中允许三种括号:圆括号.方括号和大括号.编写一个算法,判断表达式中的各种左括号是否与右括号匹配. 例如,输入2+( ...
- 第2关:利用栈判断字符串括号是否匹配
#ifndef stack__h #define stack__h#include <stdio.h> #include <stdlib.h>typedef char T; / ...
- python 判断括号是否匹配_使用Python实现一个栈判断括号是否平衡
栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top). 举个例子,栈就想一摞洗干净的盘子,你每次取一个新盘子,都是放在这一摞盘子的最上头,当你往里 ...
- 第七周项目三-用多文件组织多个类的程序
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月13日*版 本 号:v1. ...
- LeetCode Valid Parentheses(判断括号是否匹配)
题意:给出(,[,{,),],}括号组成的字符串, 判断括号是否匹配 思路:用栈结构判断 1.如果是(,[,{,将其入栈 2.如果遇到),],},看栈是否为空.栈顶元素是否对应为(,[,{ 3.将字符 ...
- 数据结构算法——判断表达式中的括号是否匹配
元旦三天假,闲着没事干,就想着复习一下学数据结构时的那些算法吧.本来是想用C语言来写的,无奈啊,三四年没用C了,基本上忘光光,还是用C#来写吧,而且.Net基类库中已经有了栈.队列等的实现,直接拿来用 ...
- 判断字符串中的括号是否匹配——c和c++实现
判断字符串中的括号是否匹配 递归实现: 先检搜一对匹配的括号,再对里面的内容进行匹配,匹配完后再继续往下匹配-- 代码如下: #include <stdio.h> #include & ...
- java小编程----括号是否匹配
错误示例::: 当 String s = "...(...[....]....{...}...)...(.[..).."; 应输出3 package com.henu.ji ...
- python中用函数设计栈的括号匹配问题_数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题...
算法 数据结构 数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题 在平时写程序当中,我们会经常遇到程序当中括号的匹配问题,也就是在程序当中左括号的数量和右括号的数量必须相等.如 ...
最新文章
- Evolview:提升系统进化树颜值
- C++面试题:list和vector有什么区别
- Java中final关键字的几种用法
- doctype声明的意义
- 6月15日起,刷卡机不能自选商户了,这样会有多少卡被封掉?
- [BZOJ1497] [NOI2006]最大获利
- 对象入参指定泛型类型_为什么要使用泛型,而不是直接将类型作为参数传递?
- python开发【基础二】
- mysql 从库relay_MySQL主库binlog(master-log)与从库relay-log关系代码详解
- libcudart.so.8.0 cannot open shared object file: No such file or directory
- git(4)---Git、Repo、Gerrit三者的区别
- 斯特林数-斯特林反演
- 深入浅出hive-hive简介
- jetty源码阅读总结1
- 【二进制】Special Numbers
- Atitit 文件读取规范 目录 1.1. 以fgetss取代fgets读取一行并过滤掉 HTML 和 PHP 标记。	1 1.2. 3. 以二进制读取 fread取代fgets	1 1.3. 4.
- SLIC超像素分割并保存分割得到的超像素块,python代码
- mysql中的预留字段_数据库设计误区:备用字段 / 保留字段 / 预留字段
- STL笔记:rb_tree
- HTML:使用单选框、复选框,让用户选择