网站如何适应屏幕,做网站时无法上传图片,做推广便宜的网站,中山做网站费用算法中设置一个栈#xff0c;每次读入一个括号#xff0c;若是右括号#xff0c;则或者与置于栈顶的括号匹配#xff0c;或者是不合法的情况#xff0c;若是左括号#xff0c;则入栈。若算法结束#xff0c;栈是空的#xff0c;则括号合法。 括号匹配函数
Status bra…算法中设置一个栈每次读入一个括号若是右括号则或者与置于栈顶的括号匹配或者是不合法的情况若是左括号则入栈。若算法结束栈是空的则括号合法。 括号匹配函数
Status bracket_match(){SElemType brackets[100];int i;SElemType e;SqStack S;Init_Stack(S);scanf(%s,brackets);while(brackets[i]!\0){if(i0(brackets[i]}||brackets[i]]||brackets[i])))return ERROR;else{switch(brackets[i]){case }:Get_Top(S,e);if(e{)Pop(S,e);break;case ]:Get_Top(S,e);if(e[)Pop(S,e);break;case ):Get_Top(S,e);if(e()Pop(S,e);break; default:Push(S,brackets[i]);break;}}i;}if(Stack_Empty(S)){Destroy_Stack(S);return OK;}else{Destroy_Stack(S);return ERROR;}
}
全部表示和实现以及测试代码
#includestdio.h
#includestdlib.h#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0typedef int Status;
typedef char SElemType;typedef struct{SElemType *base;SElemType *top;int stacksize;
}SqStack;Status Init_Stack(SqStack S){S.base(SElemType*)malloc(sizeof(SElemType)*STACK_INIT_SIZE);if(!S.base){printf(Merry Error\n);exit(0);}S.topS.base;S.stacksizeSTACK_INIT_SIZE;return OK;
}Status Clear_Stack(SqStack S){S.topS.base;return OK;
}Status Stack_Empty(SqStack S){if(S.topS.base){return TRUE;}else{return FALSE;}
}int Stack_Length(SqStack S){int length0;while(S.base!S.top){S.top--;length;}return length;
} Status Get_Top(SqStack S,SElemType e){if(S.baseS.top){return ERROR;}else{e*(S.top-1);return OK;}
}Status Push(SqStack S,SElemType e){if(S.top-S.baseS.stacksize){S.base(SElemType *)realloc(S.base,sizeof(SElemType)*(S.stacksizeSTACKINCREMENT));if(!S.base){printf(Merroy Error!\n);exit(0);}}S.stacksizeSTACKINCREMENT;*S.tope;return OK;
}Status Pop(SqStack S,SElemType e){if(S.baseS.top){return ERROR;}e*(--S.top);return OK;
}Status Destroy_Stack(SqStack S){S.topS.base;free(S.base);return OK;
}Status bracket_match(){SElemType brackets[100];int i;SElemType e;SqStack S;Init_Stack(S);scanf(%s,brackets);while(brackets[i]!\0){if(i0(brackets[i]}||brackets[i]]||brackets[i])))return ERROR;else{switch(brackets[i]){case }:Get_Top(S,e);if(e{)Pop(S,e);break;case ]:Get_Top(S,e);if(e[)Pop(S,e);break;case ):Get_Top(S,e);if(e()Pop(S,e);break; default:Push(S,brackets[i]);break;}}i;}if(Stack_Empty(S)){Destroy_Stack(S);return OK;}else{Destroy_Stack(S);return ERROR;}}int main(){while(1){if(bracket_match())printf(Brackets Is OK!\n);else{printf(Wrong Brackets\n);}}return 0;
} 欢迎留言交流。。。