码迷,mamicode.com
首页 > 其他好文 > 详细

栈在括号匹配中的应用

时间:2020-07-01 12:46:40      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:png   get   src   img   empty   ini   nbsp   http   ==   

一. 算法思想

技术图片

 

 

 

 

二. 代码实现

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("括号不匹配!\n");
                 return FALSE;
             }    
        }
        else if(arr[i]==))
        {
             if(GetTop(S)==()
            {
                PopStack(&S,&ch);    
            }
             else
             {
                 printf("括号不匹配!\n");
                 return FALSE;
             }    
        } 
     }
     if(StackEmpty(S))
     {
         printf("括号匹配!\n");
     }
     else
     {
         printf("括号不匹配!\n");
     }
     return TRUE;
 }

运行示例:

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

    return 0;
 } 

 

技术图片

 

栈在括号匹配中的应用

标签:png   get   src   img   empty   ini   nbsp   http   ==   

原文地址:https://www.cnblogs.com/hky8220/p/13218494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!