您好,欢迎来到乌哈旅游。
搜索
您的当前位置:首页括号匹配程序

括号匹配程序

来源:乌哈旅游
#include /*头文件*/

#define stackMaxSize 100 /*定义最大长度*/ typedef struct { /*定义堆栈类型*/

char stack[stackMaxSize];

int top; /*定义整型变量top,记录栈顶元素的位置。*/

}Stack;

void Initstack(Stack *S){ /*置空栈函数*/ }

void Push(Stack *S,char ch){ /*入栈函数*/ (S->top)++; }

void Pop(Stack *S,char *p){ /*出栈函数*/ }

int stackEmpty (Stack *S){ /*判栈空函数*/ }

void clearstack(Stack *S){ /*置空栈函数*/ }

void Bracket(char *str){ /*判断括号匹配函数*/

Stack S1,*S=&S1; S->top=-1;

if(S->top==-1) return 1; /*若top 值为-1,返回1.表示为空栈*/ else return 0; /*否则返回0,表示不为空栈*/ *p=S->stack[S->top]; (S->top)--;

S->stack[S->top]=ch; /*输入元素为栈顶元素*/ S->top=-1; /*top值为-1.*/

char e; /*定义字符变量 e*/

int i=0,flag=0; /*定义整型变量i,flag1,flog2*/ Initstack(S); /*调用置空栈函数*/

while (str[i]!='\\0'){ /*输入字符不为0,执行循环*/ }

switch (str[i]){

case '(': Push(S,'(');break; /*输入为'(',则进栈,并跳出当前循环*/ case ')': Pop(S,&e); /*输入为')',则出栈,并跳出当前循环*/ if(e!='(') flag=1;break;

default:break; /*否则,跳出当前循环*/ } if(flag)

break;

i++; /*继续判断下一字符*/

if(!flag) }

void main() { /*主函数*/ }

char str[100]; /*定义字符数组存放表达式*/ printf(\"请输入表达式:\"); /*提示输入*/ gets(str); /*输入*/

Bracket(str); /*调用判断括号匹配函数*/ else

printf(\"括号不匹配!\\n\"); printf(\"括号匹配!\\n\");

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- wuhaninfo.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务