zoukankan      html  css  js  c++  java
  • 在数据结构中用顺序栈解决括号匹配问题

    对于给定的一个表达式,其中一定会用到大量的左右括号,有小括号,中括号,甚至大括号。如何才能判断其中的括号是否是一一对应的。所以可以用数据结构中的顺序栈来解决这个问题 。在此我就以小括号的匹配为例来说明。在匹配检查时,我们建立一个空的顺序栈。我们从左到右依次的进行检查,当遇到的是左括号'('时,就让其进栈。当遇到')'时在将其出栈并且左右括号都划掉。一直到检查完。如果栈中是空的,则左右括号匹配 反之不匹配。

    实现代码如下:    

    int match (char exp[],int n)

    {

      char stack[maxsize];

      int top=-1;//定义和初始化一个空栈

      int  i;

      for (i=0;i<n;++i)

      {

         if(exp[i]=='(';

        stack[++top]='(';//如果遇到'(',让其进栈

        if(exp[i]==')')

        {

            if(top==-1)

              return 0;//如果遇到')’,而且栈是空的,则不匹配

          else

               --top;//栈非空 ,出栈  top-1

         }

    }

       if(top==-1)

       return 1;//如果栈空   则括号匹配  返回1

    else

    return  0;//括号不配   返回0

    }

                                                                                                                                            

  • 相关阅读:
    react
    问题总结21-07-12至21-08-15
    排序
    问题总结21-06-28至21-07-11
    问题总结21-06-14至21-06-27
    问题总结21-05-29至21-06-13
    问题总结21-04-19至21-05-28
    问题总结21-03-29至21-04-18
    问题总结21-03-08至21-03-28
    问题总结21-03-01至21-03-07
  • 原文地址:https://www.cnblogs.com/DennySmith/p/10153437.html
Copyright © 2011-2022 走看看