首页 > 其他 > 详细

栈——匹配()[]

时间:2020-11-19 00:21:37      阅读:29      评论:0      收藏:0      [点我收藏+]

 

 

//"SqStack.h"
#include<iostream>
using namespace std;

#define SElemType int
#define MAXSIZE 100

typedef struct{
    SElemType *base;
    SElemType *top;
    int stacksize;
}SqStack;

string InitStack(SqStack &S){
    S.base = new SElemType[MAXSIZE];
    S.top = S.base;
    S.stacksize=MAXSIZE;
    return "OK";
}

string Push(SqStack &S,SElemType e){
    if(S.top-S.base == S.stacksize) return "ERROR";
    *S.top=e;
    S.top++;
    return "OK";
}

string pop(SqStack &S,SElemType &e){
    if(S.base == S.top) return "ERROE";
    S.top--;
    e = *S.top;
    return "OK";
}

SElemType GetTop(SqStack S){
    if(S.top != S.base){
        return *(S.top-1);
    }
} 

int StackEmpty(SqStack S){
    if(S.top == S.base) return 1;
    return 0;
}

 

#include<iostream>
using namespace std;
#include"SqStack.h"
/*
   匹配()[]
*/
int main(){

    SqStack S;
    InitStack(S);
    int flag = 1;       //1表示匹配正确,0表示错误

    char ch;
    cin >> ch;
    while(ch != ! && flag){
        
        switch (ch)
        {
        case [:
            Push(S,1);
            
            break;
        case (:
            Push(S,2);
            
            break;
        
        case ):
            if(!StackEmpty(S) && GetTop(S) == 2){
                SElemType x;
                pop(S,x);
            }else
            {
                
                flag = 0;
            }
            break;
        
        case ]:
            if(!StackEmpty(S) && GetTop(S) == 1){
                SElemType x;
                pop(S,x);
            }else
            {
                
                flag = 0;
            }
            break;
        }
        cin >> ch;
    }
    // cout << StackEmpty(S)<<" "<<flag;
    if(StackEmpty(S) && flag) cout <<"true";
    else
    {
        cout << "WRONG";
    }
    
    system("pause");
    return 0;
}

 

栈——匹配()[]

原文:https://www.cnblogs.com/LuMinghao/p/14002842.html

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