代码-C/C++ 用顺序表实现的括号匹配问题

问题描述

C/C++ 用顺序表实现的括号匹配问题
我的代码

 #include<stdio.h>  #include<string.h>     #define TRUE 1  #define FALSE 0  typedef struct  {      char data[100];      int top;  }Stack;  int InitStack(Stack stack)  {      stack.top=-1;      return TRUE;  }  int Push(Stack &stackchar &ch)  {      if(stack.top == 99)           return FALSE;      stack.top++;      stack.data[stack.top]=ch;      return TRUE;  }  int Pop(Stack &stackchar &ch)  {      if(stack.top ==-1)          return FALSE;      ch=stack.data[stack.top];      stack.top--;      return TRUE;  }  int IsEmpty(Stack stack)  {      if(stack.top ==-1)         return TRUE;      else           return FALSE;  }  void GetTop(Stack stackchar ch)  {      if(stack.top ==-1)          printf(""????n"");      else          ch=stack.data[stack.top];  }  int Match(char schar str)  {      if(str ==')' && s =='(')         return TRUE;      if(str == ']' && s=='[')          return TRUE;      if(str =='}' && s=='{')          return TRUE;      return FALSE;  }  void BracketMatch(char str[])  {    Stack stack;    int i;    char character;    InitStack(stack);    for(i=0;str[i]!='';i++)    {        switch(str[i])        {        case '(':        case '[':        case '{':            Push(stackstr[i]);            break;        case ')':        case ']':        case '}':            if(IsEmpty(stack))            {                 printf(""n???¨???à?àn"");                 return;            }            else             {                GetTop(stackcharacter);                if(Match(characterstr[i]))                    Pop(stackcharacter);                else                    printf(""n?????????¨??????????????×ó?¨??n"");            }        }    }   if(IsEmpty(stack))        printf(""n?¨??????!n"");    else        printf(""n×ó?¨???à?à!n"");  }  int main()  {      char str[100];     int i=0;    printf(""??????????×?·???×????????¨??n"");      gets(str);    BracketMatch(str);      return 0;  }  

不能正常运行麻烦帮忙看下程序,谢谢~

解决方案

是报语法错误,还是测试数据没有达到预期呢

时间: 2025-01-05 04:32:53

代码-C/C++ 用顺序表实现的括号匹配问题的相关文章

c语言-C语言学生选课管理 顺序表实现 数据结构课程设计

问题描述 C语言学生选课管理 顺序表实现 数据结构课程设计 学生选课管理系统 用顺序表实现 ◆问题描述 设计一个计算机管理完成的学生选课信息基本业务. ◆要求 课程信息包括:课程编号.课程名称.课程性质.总学时.学分.课程人数上限. 选课信息包括:学号.姓名.选修课程编号.成绩. (1)录入.删除.修改课程信息. (2)录入.删除.修改选课信息. (3)查询.统计选课信息(按学号.学分等): (4)排序. 解决方案 http://wenku.baidu.com/link?url=dKo45dQ7

C语言顺序表实现代码排错_C 语言

今天本来想写段代码练练手,想法挺好结果,栽了个大跟头,在这个错误上徘徊了4个小时才解决,现在分享出来,给大家提个醒,先贴上代码: 复制代码 代码如下: /******************************************** * 文件名称:sqlist.h * 文件描述:线性表顺序存储演示 * 文件作者:by Wang.J,in 2013.11.16 * 文件版本:1.0 * 修改记录:*********************************************/

指针-关于c++的队列模板链表实现代码

问题描述 关于c++的队列模板链表实现代码 template class QueueTp { private: struct Node {T item; struct Node * next;}; enum { Q_SIZE = 10 };//默认队列长度 Node * front;//指向队列首个对象的指针 Node * rear;//队列尾部对象的指针 int items;//队列中的对象个数 const int qsize;//队列长度 QueueTp(const QueueTp & q)

python单链表实现代码实例_python

链表的定义:链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址.由于每个结点都包含了可以链接起来的地址信息,所以用一个变量就能够访问整个结点序列.也就是说,结点包含两部分信息:一部分用于存储数据元素的值,称为信息域:另一部分用于存储下一个数据元素地址的指针,称为指针域.链表中的第一个结点的地址存储在一个单独的结点中,称为头结点或首结点.链表中的最后一个结点没有后继元素,其指针域为空. python单链表实现代码: 复制代码

php单链表实现代码分享_php实例

本文实例为大家分享了php单链表的具体代码,供大家参考,具体内容如下 <?php /** * 单链表 */ class Demo { private $id; public $name; public $next; public function __construct ($id = '', $name = '') { $this->id = $id; $this->name = $name; } static public function show ($head) { $cur =

DropDownList绑定数据表实现两级联动示例

 这篇文章主要介绍了DropDownList绑定数据表实现两级联动具体实现,需要的朋友可以参考下 场景一:平时我们在DropDownList控件下添加下拉选项时,都会使用它的Item.Add方法,直接在代码下添加.如果我们想添加或修改下拉选项,则必须去修改源代码.如果几个DropDownList控件的下拉选项相同,我们则需要重复添加好多次,后期的维护工作很不方便.    场景二:我们在12306网站买票时,肯定遇到过这么一种情景:我们需要先选定目的地的省份,选完省份后在城市选框中会自动加载该省份

CSS样式表实现分页效果源代码

CSS样式表实现效果很好的分页效果,在学习编程过程中由于文章内容比较多或者列表内容比较多,我们都需要分页!那么你想不想要一种好的分页效果呢?这个是我认为比较容易使用,同时编程方面也挺容易实现的分页,就是以10页为基础,然后上十页和下十页,因为很少有人有兴趣会去看10页甚至20页以后的内容. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

Oracle 外部表实现方式整理

基于oracle_datapump的外部表实现过程: 一.创建外部表以及产生dmp文件 1.创建directory,需要有 create any directory权限: CREATE DIRECTORY admin AS '/oracle/admin'; 2.创建外部表: SQL> CREATE  TABLE emp_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY admin LOCATION ('emp_xt

jsp页面中的代码执行加载顺序介绍

 本篇文章主要是对jsp页面中的代码执行加载顺序进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1. java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码.所以加载执行顺序是是java>jsp>js.   2. js在jsp中的加载顺序   页面上的js代码时html代码的一部分,所以页面加载的时候是由上而下加载.所以js加载的顺序也就是页面中<script>标签出现的顺序.<scrip