zoukankan      html  css  js  c++  java
  • 栈在括号匹配中的应用

    一. 算法思想

    二. 代码实现

    eg:                 [   (   [   ]   [   ]   )   ]

    1.栈的括号匹配算法

    int MatchBracket()//栈的括号匹配算法
     {
         Stack S=InitStack();
        ElemType ch;
         char arr[8]={'[','(','[',']','[',']',')',']'};
         for(int i=0;i<8;i++)
         {
             if(arr[i]=='['||arr[i]=='(')
             {
                 PushStack(&S,arr[i]);
             }
            else if(arr[i]==']')
            {
                if(GetTop(S)=='[')
                {
                    PopStack(&S,&ch);    
                }
                 else
                 {
                     printf("括号不匹配!
    ");
                     return FALSE;
                 }    
            }
            else if(arr[i]==')')
            {
                 if(GetTop(S)=='(')
                {
                    PopStack(&S,&ch);    
                }
                 else
                 {
                     printf("括号不匹配!
    ");
                     return FALSE;
                 }    
            } 
         }
         if(StackEmpty(S))
         {
             printf("括号匹配!
    ");
         }
         else
         {
             printf("括号不匹配!
    ");
         }
         return TRUE;
     }

    运行示例:

    int main()
    {
        if(MatchBracket())
        {
            printf("算法正常结束!
    ");
        }
        else
        {
            printf("算法异常结束!
    ");
        }
    
        return 0;
     } 

  • 相关阅读:
    Python成长笔记
    Python成长笔记
    Python成长笔记
    Python成长笔记
    Python成长笔记
    Python成长笔记
    Python成长笔记
    Python成长笔记
    Python成长笔记
    解决Jenkins生成测试报告的问题
  • 原文地址:https://www.cnblogs.com/hky8220/p/13218494.html
Copyright © 2011-2022 走看看