首页 > 其他 > 详细

栈在括号匹配中的应用

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

一. 算法思想

技术分享图片

 

 

 

 

二. 代码实现

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;
 } 

 

技术分享图片

 

栈在括号匹配中的应用

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!